<a href="http://webabcd.blog.51cto.com/1787395/341976" target="_blank">[索引頁]</a>
<a href="http://down.51cto.com/data/100088" target="_blank">[源碼下載下傳]</a>
系出名門Android(6) - 控件(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
TimePicker - 時間選擇控件
<TimePicker android:id="@+id/timePicker"
</TimePicker>
_TimePicker.java
public class _TimePicker extends Activity {
this.setContentView(R.layout.timepicker);
setTitle("TimePicker");
3、ToggleButton 的 Demo
togglebutton.xml
<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="打開" />
_ToggleButton.java
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ToggleButton;
public class _ToggleButton extends Activity {
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
EditText - 可編輯文本控件
<EditText android:id="@+id/editText" android:layout_width="fill_parent"
android:layout_height="wrap_content">
</EditText>
_EditText.java
import android.widget.EditText;
public class _EditText extends Activity {
this.setContentView(R.layout.edittext);
setTitle("EditText");
EditText txt = (EditText) this.findViewById(R.id.editText);
txt.setText("我可編輯");
5、ProgressBar 的 Demo
progressbar.xml
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"
進度條控件(條狀)的示範
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" />
_ProgressBar.java
import android.view.Window;
// 另見對話框中的進度條
public class _ProgressBar extends Activity {
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
SeekBar - 可拖動的進度條控件
<SeekBar android:id="@+id/seekBar" android:layout_width="fill_parent"
<TextView android:id="@+id/progress" android:layout_width="fill_parent"
<TextView android:id="@+id/tracking" android:layout_width="fill_parent"
_SeekBar.java
import android.widget.SeekBar;
public class _SeekBar extends Activity implements
SeekBar.OnSeekBarChangeListener {
SeekBar mSeekBar;
TextView mProgressText;
TextView mTrackingText;
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
AutoCompleteTextView - 支援自動完成功能的可編輯文本控件
<AutoCompleteTextView android:id="@+id/editText"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
_AutoCompleteTextView.java
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class _AutoCompleteTextView extends Activity {
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
MultiAutoCompleteTextView - 支援自動完成功能的可編輯文本控件,允許輸入多值(多值之間會自動地用指定的分隔符分開)
<MultiAutoCompleteTextView android:id="@+id/editText"
_MultiAutoCompleteTextView.java
import android.widget.MultiAutoCompleteTextView;
public class _MultiAutoCompleteTextView extends Activity {
setContentView(R.layout.multiautocompletetextview);
setTitle("MultiAutoCompleteTextView");
MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.editText);
// 設定多個值之間的分隔符,此處為逗号
textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
OK
本文轉自webabcd 51CTO部落格,原文連結:http://blog.51cto.com/webabcd/342063,如需轉載請自行聯系原作者