zoukankan      html  css  js  c++  java
  • Android学习笔记——Day3

    7)AutoCompleteTextView(自动完成)
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="请输入你的查询条件:" />

        <AutoCompleteTextView android:id="@+id/AutoCompleteTextView01"
            android:layout_width="fill_parent" android:layout_height="wrap_content"></AutoCompleteTextView>
    </LinearLayout>

    public class AutoTextFrame extends Activity {
        private String[] datas = {"abc","ade","bcd","bkff","akhlv"};
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.autocompletetextui);
            AutoCompleteTextView autoText = (AutoCompleteTextView)this.findViewById(R.id.act_text);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,datas);
            autoText.setAdapter(adapter);
        }
    }

    8)日期选择器:
    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView android:id="@+id/ScrollView01"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout android:orientation="vertical"
            android:layout_width="fill_parent" android:layout_height="fill_parent">
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:text="请选择你的出生年月日:" />
            <DatePicker android:id="@+id/DatePicker01"
                android:layout_width="wrap_content" android:layout_height="wrap_content"></DatePicker>
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:text="请选择你的出生时间:" />
            <TimePicker android:id="@+id/TimePicker01"
                android:layout_width="wrap_content" android:layout_height="wrap_content">
            </TimePicker>
            <Button android:text="确定" android:id="@+id/Button01"
                android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
        </LinearLayout>
    </ScrollView>

    public class ShowView extends Activity {
         private DatePicker picker;
        private TimePicker tp;
        private Button button;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            picker = (DatePicker)this.findViewById(R.id.DatePicker01);
            tp = (TimePicker)this.findViewById(R.id.TimePicker01);
            button = (Button)this.findViewById(R.id.Button01);
            picker.init(1982,6,12,null);
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    int year = picker.getYear();
                    int m = picker.getMonth();
                    int d = picker.getDayOfMonth();
                    int h = tp.getCurrentHour();
                    int s = tp.getCurrentMinute();
                    setTitle("你的出生年月日为: "+year+"-"+m+"-"+d+"   "+h+":"+s);
                   
                }
            });
        }
    }


    9)图片、图片按钮:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="学习ImageView以及ImageButton的使用" />

        <ImageView android:id="@+id/ImageView01"
            android:layout_width="wrap_content" android:src="@drawable/map"
            android:layout_height="wrap_content"></ImageView>
        <ImageButton android:id="@+id/ImageButton01" android:src="@drawable/lostfocusimage"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageButton>
    </LinearLayout>

    public class ShowView extends Activity {
        /** Called when the activity is first created. */
        private ImageButton button;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            button = (ImageButton)this.findViewById(R.id.ImageButton01);
            button.setOnClickListener(new OnClickListener() {
               
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    setTitle("按了按钮");
                }
            });
        }
    }


    10)tab面板:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <!-- 每一个TextView对应一个Tab的内容 -->
        <TextView android:text="这是Tab1的内容" android:id="@+id/TextView01"
            android:layout_width="fill_parent" android:layout_height="fill_parent"></TextView>
        <TextView android:text="这是Tab2的内容" android:id="@+id/TextView02"
            android:layout_width="fill_parent" android:layout_height="fill_parent"></TextView>
        <TextView android:text="这是Tab3的内容" android:id="@+id/TextView03"
            android:layout_width="fill_parent" android:layout_height="fill_parent"></TextView>
        <ImageView android:id="@+id/ImageView01" android:src="@drawable/map"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    </LinearLayout>

    public class ShowImageSwitch extends TabActivity{
        /** Called when the activity is first created. */
       
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           
            //setContentView(R.layout.main);
            // 获取TabHost
            TabHost tabHost = this.getTabHost();
            LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(),true);
            // 最重要的代码是下面
            tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1").setContent(R.id.TextView01));
            tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(R.id.TextView02));
            tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3").setContent(R.id.TextView03));
                   
        }
       
    }

    Toast t = Toast.makeText(this,"你已经登录到该系统了...",Toast.LENGTH_LONG);
    t.show();

    不同的Activity传递数据:
    A、First Activity
     Intent i = new Intent(this,ShowFrame.class);
     Bundle b = new Bundle();
     b.putString("shengao",shengao);
     b.putString("sex",sex);
     i.putExtras(b);
     startActivityForResult(i,1);
    B、Second Activity
    Bundle b = this.getIntent().getExtras();
    String shengao = b.getString("shengao");
    String sex = b.getString("sex");

    返回上一个Activity:
    A、在第一个Activity调用startActivityForResult(..,..),如:
    public void onClick(View v) {
        ...
            Intent i = new Intent(this,ShowFrame.class);
            Bundle b = new Bundle();
            b.putString("shengao",shengao);
            b.putString("sex",sex);      
            i.putExtras(b);      
            startActivityForResult(i,1);
    }
    //该方法是第二个活动Activity单返回时被调用,requestCode是之前设置的值
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode == 1){
                switch(resultCode){
                    case RESULT_OK:{
                        Bundle b = data.getExtras();
                        String shengao = b.getString("shengao");
                        String sex = b.getString("sex");
                        if(sex.equals("男")){
                            rb_1.setChecked(true);
                        }else{
                            rb_2.setChecked(true);
                        }
                        String tizhong = b.getString("tizhong");
                       
                        setTitle("你的标准体重是:"+tizhong);
                        et.setText(shengao);
                        break;
                    }
                   
                }
            }
    }

    B、在第二个Activity处理完数据之后,要消毁该屏幕对象
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        this.setResult(RESULT_OK,this.getIntent());
        this.finish();
    }


    常用组件之二:
    11) Menu 以及MenuItem
    A、利用代码来增加菜单项:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="@string/hello" />
    </LinearLayout>

    public class MenuView extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
        // 当客户按下手机的menu功能的时候会回调oncreateOptionsMenu方法
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            /*
        * MenuItem add(int groupId,int itemId,int order,int titleRes):
        * 参数说明:
        * 1)groupId:指菜单项所属的组id
        * 2)itemId:设定菜单项的id,唯一标识该菜单项
         * 3)order:设定菜单项在菜单中的位置
        * 4)titleRes:设定菜单项上的内容
        */
            menu.add(0,1,1,"添加").setIcon(R.drawable.ic_menu_agenda);
            menu.add(0,2,2,"离开").setIcon(R.drawable.ic_menu_close_clear_cancel);
            return super.onCreateOptionsMenu(menu);
        }
        // 定义menu响应单击事件
        /*
         * boolean onMenuItemSelected(int featureId, MenuItem item)
         * featureId - 菜单所在的面板的id
           item - 被选中的菜单项.
         */
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            switch(item.getItemId()){
                case 1:{
                    setTitle("选择了添加");
                    break;
                }
                case 2:{
                    setTitle("选择了离开");
                    break;
                }
            }
            return super.onOptionsItemSelected(item);
        }
    }

    增加子菜单:
    public boolean onCreateOptionsMenu(Menu menu) { 
        boolean result = super.onCreateOptionsMenu(menu);  
        SubMenu fileMenu = menu.addSubMenu("File"); 
        SubMenu editMenu = menu.addSubMenu("Edit"); 
        fileMenu.add("new"); 
        fileMenu.add("open"); 
        fileMenu.add("save"); 
        editMenu.add("undo"); 
        editMenu.add("redo");  
        return result;
    }

    B、利用xml文件来增加菜单项
    i、在res新建一个menu目录,再建menu/menu.xml
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/item01" android:title="你选择了增加"></item>
        <item android:id="@+id/item02" android:title="你选择了离开"></item>
    </menu>
    ii、public class MenuView extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
        //从menu.xml中读取菜单项
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            super.onCreateOptionsMenu(menu);
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu, menu);
            return true;
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
           
            switch(item.getItemId()){
                case 1:{
                    setTitle("选择了添加");
                    break;
                }
                case 2:{
                    setTitle("选择了离开");
                    break;
                }
            }
            return true;
        }
    }

    //PreferencesActivity是Android 中专门用来实现程序设置界面及参数存储的一个Activity
    /*PreferencesActivity常见的几个组件:
     * PreferenceScreen:设置页面,可嵌套形成二级设置页面,用Title参数设置标题。
     * PreferenceCategory:某一类相关的设置,可用Title参数设置标题。
     * CheckBoxPreference:是一个CheckBox设置,只有两种值,true或false,
     * 可用Title参数设置标题,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示。
     */
    public class Settings extends PreferenceActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /*
             * The addPreferencesFromResource( ) method reads the settings
             * definition from XML and inflates it into views in the current
             * activity. All the heavy lifting takes place in the PreferenceActivity
             * class.
             */
            addPreferencesFromResource(R.xml.settings);
        }

    }
    res/xml/settings.xml
    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <CheckBoxPreference android:title="@string/music_title"
            android:key="music" android:summary="@string/music_summary" android:defaultValue="true"></CheckBoxPreference>
        <CheckBoxPreference android:title="@string/hints_title"
            android:key="hints" android:summary="@string/hints_summary" android:defaultValue="true"></CheckBoxPreference>
    </PreferenceScreen>

    12)、进度条、拖动条、星级:
    A、进度条分类
    长形进度条 (progressBarStyleHorizontal)
    大圆形进度条(progressBarStyleLarge)
    小圆形进度条 (progressBarStyleSmall)
    默认风格 (progressBarStyle)
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    >
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
    />
    <ProgressBar android:id="@+id/ProgressBar01" android:layout_width="200dp"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:visibility="gone"
    ></ProgressBar>
    <ProgressBar android:id="@+id/ProgressBar02" android:layout_width="wrap_content"
    android:max="100"
    style="?android:attr/progressBarStyleLarge"
    android:progress="50" android:secondaryProgress="70"
    android:indeterminate="false"
    android:visibility="gone"
    android:layout_height="wrap_content"></ProgressBar>
    <Button android:text="开始" android:id="@+id/Button01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </LinearLayout>


    清单中,ProgressBar01为长形进度条,ProgressBar02为大圆形进度条,使用方法为声明“style=”在样式上加上各自属性,加载即可。

    进度条主要属性方法
        indeterminate
    进度条分 不确定 (indeterminate=true)和 确定 (indeterminate=false)2种,默认值是(indeterminate=true)不确定
        setMax
    设置进度条的最大值,同时,确定(indeterminate=false)进度条中的最大值的设定,将调用 setMax()方法。
        setProgress
    Android 进度条中当前进度值的设置。
        setSecondaryProgress
    第二进度条的设置。
        setVisibility
    设置可见性。


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="圆形进度条" />
        <ProgressBar android:id="@+id/ProgressBar01"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></ProgressBar>
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="水平进度条" />
        <ProgressBar android:id="@+id/ProgressBar02"
            android:layout_width="200dip" style="?android:attr/progressBarStyleHorizontal"
            android:max="100" android:progress="20" android:secondaryProgress="75"
            android:layout_height="wrap_content"></ProgressBar>
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="你选择的进度是" />

        <SeekBar android:id="@+id/SeekBar01" android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:max="100"
            android:progress="30"></SeekBar>
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="星级" />

        <RatingBar android:id="@+id/RatingBar01"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></RatingBar>
    </LinearLayout>

    拖动条:SeekBar
    <SeekBar android:layout_height="wrap_content"
                android:layout_width="150px" android:max="100" android:id="@+id/sbMusic"></SeekBar>
    //为拖条增加事件
    musicSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                //用户停止拖动拖动时被调用...
                public void onStopTrackingTouch(SeekBar seekBar) {
                    Toast t = Toast.makeText(ProgreeBarUI.this,"用户停止拖动拖动条...",Toast.LENGTH_SHORT);
                    t.show();
                   
                }
                //用户开始拖动拖动时被调用...
                public void onStartTrackingTouch(SeekBar seekBar) {
                    Toast t = Toast.makeText(ProgreeBarUI.this,"用户准备拖动拖动条...",Toast.LENGTH_SHORT);
                    t.show();
                   
                }
                //用户拖动拖动过程中,拖动条的时改变时被调用...
                /*
                 * 方法三个参数含义:
                 * seekBar - 目标拖动条
                    progress - 拖动条的当前进度
                    fromUser - True if the progress change was initiated by the user.

                 */
                public void onProgressChanged(SeekBar seekBar, int progress,
                        boolean fromUser) {
                    seekBarText.setText("拖动条当前进度:"+progress+"%");
                }
    });


    星级进度条:
    <RatingBar android:id="@+id/RatingBar01"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:rating="1" android:numStars="3"></RatingBar>

    public class ShowView extends Activity {
        /** Called when the activity is first created. */
        // 得到评级条
        private RatingBar tbar;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            tbar = (RatingBar)this.findViewById(R.id.RatingBar01);
            tbar.setRating(3.5f);// 这是用来设置评分等级的
        }
    }


     

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/yhlx/p/2166547.html
Copyright © 2011-2022 走看看