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);// 这是用来设置评分等级的
        }
    }


     

  • 相关阅读:
    理解Docker(6):若干企业生产环境中的容器网络方案
    理解Docker(5):Docker 网络
    理解Docker(4):Docker 容器使用 cgroups 限制资源使用
    理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境
    理解Docker(2):Docker 镜像
    理解Docker(1):Docker 安装和基础用法
    OpenStack 行业正进入拓展期:行业云将成为新一轮工业革命的基础设施和引擎
    PHP通用返回值设置
    C++ 模板学习 函数模板、类模板、迭代器模板
    C++/Php/Python 语言执行shell命令
  • 原文地址:https://www.cnblogs.com/yhlx/p/2166547.html
Copyright © 2011-2022 走看看