文章出处:http://blog.youkuaiyun.com/scarthr/article/details/41966975
Android的控件非常的多,几个简单的例如TextView、EditView、Button等这里就不做介绍了,我们这里就讲解一些其它常用的控件。
一 RadioGroup
RadioGroup比较简单,注意要包在一个RadioGroup内的RadioButton才可以进行多选。
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:layout_marginTop="24dp" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton" />
</RadioGroup>
用isChecked()来判断RadioButton是否被选中。
二 CheckBox
CheckBox的用法如下: <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<CheckBox
android:id="@+id/CheckBox01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="CheckBox" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/CheckBox01"
android:text="CheckBox" />
<CheckBox
android:id="@+id/CheckBox02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/checkBox1"
android:text="CheckBox" />
</LinearLayout>
CheckBox的使用方法同RadioButton。
三 DatePicker
直接只用new DatePickerDialog即可: new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// 在这里做我们选择好日期的操作
}
}, 2014, 12, 26);
注意onDateSet这个回调方法,它是在选择玩日期所要执行的方法。
四 TimePicker
TimePick和DatePicker使用类似: new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// 设置好时间后的操作
}
}, 22, 45, true);
回调方法和上面的类似。
五 Spinner
Spinner是下拉选择框。在布局文件中定义好Spinner: <Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
Activity文件中如下写:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item);
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
adapter.add("1");
adapter.add("2");
adapter.add("3");
spinner.setAdapter(adapter);
就可以实现数据的绑定。
六 ProgressBar
几种不同的ProgressBar入下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<ProgressBar
android:id="@+id/progressBar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar1" />
<ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar2" />
<ProgressBar
android:id="@+id/progressBar4"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar3" />
</RelativeLayout>
我们着重看一下最后一种ProgressBar。
测试类如下,测试了一个从1开始慢慢增涨的到100的进度条
package com.thr.testandroid;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private Timer timer;
private TimerTask task;
private ProgressBar pb;
private int progress = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb = (ProgressBar) findViewById(R.id.progressBar4);
pb.setMax(100);
}
@Override
protected void onResume() {
startTimer();
super.onResume();
}
@Override
protected void onPause() {
stopTimer();
super.onPause();
}
private void startTimer() {
if (timer == null) {
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
progress++;
pb.setProgress(progress);
}
};
timer.schedule(task, 1000, 1000);
}
}
private void stopTimer() {
if (timer != null) {
task.cancel();
timer.cancel();
task = null;
timer = null;
}
}
}
七 AutoCompleteTextView
AutoCompleteTextView是一种会自动填充的TextView,使用这个控件还是需要Adapter适配器。布局文件很简单:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:ems="10" >
<requestFocus />
</AutoCompleteTextView>
</RelativeLayout>
Java文件:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line);
AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
adapter.add("java");
adapter.add("javascript");
adapter.add("jaavaa");
actv.setAdapter(adapter);
有可能需要调一下TextView的字体颜色,不然会看不到显示出来的提示内容。
八 MultiAutoCompleteTextView
这个MultiAutoCompleteTextView是继承自AutoCompleteTextView的,使用方法类似,布局文件:
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/autoCompleteTextView1"
android:layout_marginTop="60dp"
android:ems="10" />
来看AutoComplete和MultiAutoComplete的几个常见属性:
completionThreshold:在输入几个字符后开始提示。
dropDownAnchor:在哪个View下弹出提示。
dropDownSelector:提示项被选中是的背景
Java文件:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line);
MultiAutoCompleteTextView mactv = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);
adapter.add("java");
adapter.add("javascript");
adapter.add("jaavaa");
mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
mactv.setAdapter(adapter);
AutoCompleteTextView可以自动提示的只有一次,而MultiMultiAutoCompleteTextView在上面的写法中可以用“,”进行多次提示。