您的位置:首页 > 移动开发 > Android开发

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

2010-01-25 08:44 609 查看
[索引页]
[源码下载]

[align=center]系出名门Android(6) - 控件(View)之DatePicker, TimePicker, ToggleButton, EditText, ProgressBar, SeekBar, AutoCompleteTextView, MultiAutoCompleteTextView[/align]

作者: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
[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐