• 系出名门Android(6) 控件(View)之DatePicker, TimePicker, ToggleButton, EditText, ProgressBar, SeekBar, AutoComplete


    [索引页]
    [源码下载]


    系出名门Android(6) - 控件(View)之DatePicker, TimePicker, ToggleButton, EditText, ProgressBar, SeekBar, AutoCompleteTextView, MultiAutoCompleteTextView


    作者:webabcd


    介绍
    在 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, 
                    ary);
            MultiAutoCompleteTextView textView 
    = (MultiAutoCompleteTextView) findViewById(R.id.editText);
            textView.setAdapter(adapter);
            
            
    // 设置多个值之间的分隔符,此处为逗号
            textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
        }

        
    // 自动完成控件的所需数据的数据源
        private String[] ary = new String[] {
            
    "abc",
            
    "abcd",
            
    "abcde",
            
    "abcdef",
            
    "abcdefg",
            
    "hij",
            
    "hijk",
            
    "hijkl",
            
    "hijklm",
            
    "hijklmn",
        };
    }


    OK
    [源码下载]
  • 相关阅读:
    格式化数字保留N位小数
    listbox美化
    501 Not Implemented:服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
    截透明
    CASE WHEN
    c# HttpWebRequest与HttpWebResponse 绝技
    提取网页中的超链接(C#)
    转sqlhelp
    IIS创建虚拟目录
    一次重构的过程
  • 原文地址:https://www.cnblogs.com/webabcd/p/1655550.html
Copyright © 2020-2023  润新知