zoukankan      html  css  js  c++  java
  • 控件(View)之DatePicker, TimePicker, ToggleButton, EditText, ProgressBar, SeekBar, AutoCompleteTextView, MultiAutoCompleteTextView【转】

    在 Android 中使用各种控件(View)
    DatePicker - 日期选择控件
    TimePicker - 时间选择控件
    ToggleButton - 双状态按钮控件
    EditText - 可编辑文本控件
    ProgressBar - 进度条控件
    SeekBar - 可拖动的进度条控件
    AutoCompleteTextView - 支持自动完成功能的可编辑文本控件
    MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)

    1、DatePicker 的 Demo
    datepicker.xml

    代码

    <?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">
        <!--
            DatePicker - 日期选择控件
        -->
        <DatePicker android:id="@+id/datePicker"
            android:layout_width="wrap_content" android:layout_height="wrap_content">
        </DatePicker>
    </LinearLayout>

    _DatePicker.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    public class _DatePicker extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.datepicker);
            // 具体的应用可参见对话框中的示例
            setTitle("DatePicker");
        }
    }

    2、TimePicker 的 Demo
    timepicker.xml

    代码

    <?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">
        <!--
            TimePicker - 时间选择控件
        -->
        <TimePicker android:id="@+id/timePicker"
            android:layout_width="wrap_content" android:layout_height="wrap_content">
        </TimePicker>
    </LinearLayout>

    _TimePicker.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    public class _TimePicker extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.timepicker);
            // 具体的应用可参见对话框中的示例
            setTitle("TimePicker");
        }
    }

    3、ToggleButton 的 Demo
    togglebutton.xml

    代码

    <?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:id="@+id/textView" />
        <!--
            ToggleButton - 双状态按钮控件
                textOn - 当按钮状态为 true 时所显示的文本
                textOff - 当按钮状态为 false 时所显示的文本
        -->
        <ToggleButton android:id="@+id/toggleButton"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:textOn="关闭" android:textOff="打开" />
    </LinearLayout>

    _ToggleButton.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.ToggleButton;
    public class _ToggleButton extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.togglebutton);
            setTitle("ToggleButton");
            final ToggleButton btn = (ToggleButton) this.findViewById(R.id.toggleButton);
            // setOnClickListener() - 响应按钮的鼠标单击事件
            btn.setOnClickListener(new Button.OnClickListener(){
                @Override
                public void onClick(View v) {
                    TextView txt = (TextView) _ToggleButton.this.findViewById(R.id.textView);
                    // ToggleButton.isChecked() - 双状态按钮的按钮状态
                    txt.setText("按钮状态:" + String.valueOf(btn.isChecked()));
                }
            });
        }
    }

    4、EditText 的 Demo
    edittext.xml

    代码

    <?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">
        <!--
            EditText - 可编辑文本控件
        -->
        <EditText android:id="@+id/editText" android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        </EditText>
    </LinearLayout>

    _EditText.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.EditText;
    public class _EditText extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.edittext);
            setTitle("EditText");
            EditText txt = (EditText) this.findViewById(R.id.editText);
            txt.setText("我可编辑");
        }
    }

    5、ProgressBar 的 Demo
    progressbar.xml

    代码

    <?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">
        <!--
            ProgressBar - 进度条控件
        -->
        <!--以下分别为大、中、小的进度条控件(圆圈状)-->
        <ProgressBar android:id="@+android:id/progress_large"
            style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ProgressBar android:id="@+android:id/progress"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <ProgressBar android:id="@+android:id/progress_small"
            style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <!--
            进度条控件(条状)的演示
                style - 进度条的样式,本例使用内置样式
                max - 进度的最大值
                progress - 第一进度位置
                secondaryProgress - 第二进度位置
        -->
        <ProgressBar android:id="@+id/progress_horizontal"
            style="?android:attr/progressBarStyleHorizontal" android:layout_width="200px"
            android:layout_height="wrap_content" android:max="100"
            android:progress="50" android:secondaryProgress="75" />
    </LinearLayout>

    _ProgressBar.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    // 另见对话框中的进度条
    public class _ProgressBar extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);       
            // 设置特性以允许在应用程序的标题栏上显示进度条(条状)
            requestWindowFeature(Window.FEATURE_PROGRESS);
            // 设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)
            requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
            this.setContentView(R.layout.progressbar);
            setTitle("ProgressBar");
            // 在标题栏上显示进度条(条状)
            setProgressBarVisibility(true);
            // 在标题栏上显示进度条(圆圈状)
            setProgressBarIndeterminateVisibility(true);
            // 指定进度条的进度
            setProgress(50 * 100);
            setSecondaryProgress(75 * 100);
        }
    }

    6、SeekBar 的 Demo
    seekbar.xml

    代码

    <?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">
        <!--
            SeekBar - 可拖动的进度条控件
                max - 进度的最大值
                progress - 第一进度位置
                secondaryProgress - 第二进度位置
        -->
        <SeekBar android:id="@+id/seekBar" android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:max="100"
            android:progress="50" android:secondaryProgress="75" />
        <TextView android:id="@+id/progress" android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <TextView android:id="@+id/tracking" android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    _SeekBar.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.SeekBar;
    import android.widget.TextView;
    public class _SeekBar extends Activity implements
            SeekBar.OnSeekBarChangeListener {
        SeekBar mSeekBar;
        TextView mProgressText;
        TextView mTrackingText;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.seekbar);
            setTitle("SeekBar");
            mSeekBar = (SeekBar) findViewById(R.id.seekBar);
            // setOnSeekBarChangeListener() - 响应拖动进度条事件
            mSeekBar.setOnSeekBarChangeListener(this);
            mProgressText = (TextView) findViewById(R.id.progress);
            mTrackingText = (TextView) findViewById(R.id.tracking);
        }
        // 拖动进度条后,进度发生改变时的回调事件
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromTouch) {
            mProgressText.setText(progress + "%");
        }
        // 拖动进度条前开始跟踪触摸
        public void onStartTrackingTouch(SeekBar seekBar) {
            mTrackingText.setText("开始跟踪触摸");
        }
        // 拖动进度条后停止跟踪触摸
        public void onStopTrackingTouch(SeekBar seekBar) {
            mTrackingText.setText("停止跟踪触摸");
        }
    }

    7、AutoCompleteTextView 的 Demo
    autocompletetextview.xml

    代码

    <?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">
        <!--
            AutoCompleteTextView - 支持自动完成功能的可编辑文本控件
        -->
        <AutoCompleteTextView android:id="@+id/editText"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </LinearLayout>

    _AutoCompleteTextView.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    public class _AutoCompleteTextView extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.autocompletetextview);
            setTitle("AutoCompleteTextView");
            // 实例化适配器,指定显示格式及数据源
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    this,
                    android.R.layout.simple_dropdown_item_1line,
                    ary);
            AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.editText);
            // 指定自动完成控件的适配器
            textView.setAdapter(adapter);
        }
        // 自动完成控件的所需数据的数据源
        private String[] ary = new String[] {
            "abc",
            "abcd",
            "abcde",
            "abcdef",
            "abcdefg",
            "hij",
            "hijk",
            "hijkl",
            "hijklm",
            "hijklmn",
        };
    }

    8、MultiAutoCompleteTextView 的 Demo
    multiautocompletetextview.xml

    代码

    <?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">
        <!--
            MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)
        -->
        <MultiAutoCompleteTextView android:id="@+id/editText"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </LinearLayout>

    _MultiAutoCompleteTextView.java

    代码

    package com.webabcd.view;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.MultiAutoCompleteTextView;
    public class _MultiAutoCompleteTextView extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.multiautocompletetextview);
            setTitle("MultiAutoCompleteTextView");
            // 实例化适配器,指定显示格式及数据源
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    this,
                    android.R.layout.simple_dropdown_item_1line,

  • 相关阅读:
    成功破解校园网锐捷客户端,实现笔记本无线网卡wifi
    献给正在郁闷的人们
    用友客户通,无法打开登录 'turbocrm' 中请求的数据库。登录失败。
    如何得到cxgrid的当前编辑值
    cxgrid当底层数据集为空时显示一条空记录
    使用nlite将SCSI RAID 阵列驱动整合到系统安装光盘内
    开始菜单的运行没有了
    Delphi代码获取网卡物理地址三种方法
    登录用友通模块时提示:运行时错误'430',类不支持自动化或不支持期望的接口 ...
    CentOS7下安装MySQL Mr
  • 原文地址:https://www.cnblogs.com/wzh206/p/1723377.html
Copyright © 2011-2022 走看看