android-常用控件-<四.下>
1.Spinner
一个显示下拉列表的控件,控件内容由相应的Adapter提供。
2.Spinner实现的步骤
存放内容的方式:1.main.xml里,android:entries=“@array/planets_array”;//内容为string.xml里的字符串数组。
2.使用ArrayAdapter ad=ArrayAdapter.createFromResource(Context context, int
textArrayResId, int textViewResId)
textArrayResId(string.xml下的字符串数组id):R.array.planets_array,
textViewResId(android内置的textiew):android.R.layout.simple_spinner_item);
3.ArrayAdapter ad=new ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
4.使用自定义的BaseAdapter适配器。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class SpinnerDemoActivity extends Activity { /* * 1.main.xml里创建spinner * 2.为spinner创建适配器:arrayadapter * 3.String.xml写入字符串数组string-array * */ private Spinner spinner=null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); spinner=(Spinner)findViewById(R.id.spinner); // ArrayAdapter<CharSequence> // adapter= ArrayAdapter.createFromResource(SpinnerDemoActivity.this,R.array.planets_array,android.R.layout.simple_spinner_item); // adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // spinner.setAdapter(adapter); List<String> list=new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); ArrayAdapter ad=new ArrayAdapter(this,android.R.layout.simple_spinner_item, list); spinner.setAdapter(ad ); spinner.setPrompt("test"); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub String item=arg0.getItemAtPosition(arg2).toString(); System.out.println("item"+item); Toast.makeText(SpinnerDemoActivity.this, item, 1000); } public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } }
3.DatePicker
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 public class DataPickerDemoActivity extends Activity { 2 /* 3 * datapicker演示: 4 * 步骤:1.建一个button,点击后进入更改时间界面 5 * 2.重写onCreateDialog方法,做出不同的响应 6 * 3添加DatePickerDialog.OnDateSetListener: 7 */ 8 9 /** Called when the activity is first created. */ 10 private Button bt=null; 11 private TextView tv=null; 12 private int year=0; 13 private int month=0; 14 private int day=0; 15 private final int DATA_DIALOG_ID=1; 16 @Override 17 public void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.main); 20 //获取当前时间 21 Calendar c=Calendar.getInstance(); 22 year=c.get(Calendar.YEAR); 23 month=c.get(Calendar.MONTH); 24 day=c.get(Calendar.DAY_OF_MONTH); 25 //获取控件 26 bt=(Button)findViewById(R.id.bt); 27 tv=(TextView)findViewById(R.id.tv); 28 bt.setOnClickListener(new OnClickListener() { 29 30 @SuppressWarnings("deprecation") 31 public void onClick(View v) { 32 // TODO Auto-generated method stub 33 showDialog(DATA_DIALOG_ID); 34 } 35 }); 36 37 } 38 //为DatePickerDialog设置监听器 39 private DatePickerDialog.OnDateSetListener mdatalistner=new DatePickerDialog.OnDateSetListener 40 (){ 41 //这里处理用户设置的参数 42 public void onDateSet(DatePicker arg0, int arg1, int arg2, 43 int arg3) { 44 // TODO Auto-generated method stub 45 System.out.println(arg1+"--"+arg2+"---"+arg3); 46 }}; 47 //对showdialog做出响应的方法 48 @Override 49 protected Dialog onCreateDialog(int id) { 50 // TODO Auto-generated method stub 51 switch(id) 52 { 53 case DATA_DIALOG_ID: 54 return 55 new DatePickerDialog(this, mdatalistner, year, month, day); 56 } 57 58 return null; 59 } 60 }
4.AutoCompleteTextView,MultiAutoCompleteTextView
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class AutoCompleteDemoActivity extends Activity { /* * AutoCompleteTextView演示: * 1.main.xml建一个actv,新建一个textview.xml * 2.创建适配器arrayadapter * 3.为actv设置适配器arrayadapter * *MultiAutoCompleteTextView:比上面的多功能即输入,第二个单词时还可以出现提示 * 步骤:大致和上面相同,不过要为mactv设置分词器setTokenizer * */ private AutoCompleteTextView actv=null; private static final String[] NAME={"hq","cyx","hugo" }; private MultiAutoCompleteTextView mactv=null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); actv=(AutoCompleteTextView)findViewById(R.id.actv); ArrayAdapter ad=new ArrayAdapter(this,R.layout.list_item, NAME); actv.setAdapter(ad); mactv=(MultiAutoCompleteTextView)findViewById(R.id.mactv); mactv.setAdapter(ad); mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }
5.SeekBar
progressBar的增强版,它可以左右拖动进度条,而progressBar不可以。
setOnItemSelectedListener:设置监听器,该监听器里有方法可以获知,开始,停止,变化的进度值。
6.RatingBar
progressBar和SeekBar的扩展版,它以星星的方式作为评价标准(默认5个星星)