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适配器。

 
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
                
            }
        });
        
    
    }
}
View Code

 3.DatePicker

 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 }
View Code

 4.AutoCompleteTextView,MultiAutoCompleteTextView

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());
    }
}
View Code

 5.SeekBar

    progressBar的增强版,它可以左右拖动进度条,而progressBar不可以。

    setOnItemSelectedListener:设置监听器,该监听器里有方法可以获知,开始,停止,变化的进度值。

6.RatingBar

   progressBar和SeekBar的扩展版,它以星星的方式作为评价标准(默认5个星星)

 

posted @ 2015-02-19 17:08  beyondbycyx  阅读(239)  评论(0编辑  收藏  举报