Spinner、AutoCompleteTextView简单使用

来源:互联网 发布:js flash 编辑:程序博客网 时间:2024/05/08 23:56

一、AutoCompleteTextView 监听事件
AutoCompleteTextView auto=(AutoCompleteTextView)findviewById(R.id.xx);

auto.setonItemClickListener(new onItemClickListener(){
public void onOtemClick(AdapterView parent,View view,int position,int id){
switch(parent.getid()){

     }}

});

auto.addTextChangeListener(new TextWatch(){
……
});

二、Spinner

Spinner sp=(Spinner)findviewById(R.id.xx);
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.xxx,数据源);
sp.setAdapter(adapter);

sp.setOnItemSeletedListener(new OnItemSeletedListener(){
public void onItemSeleted(AdapterView parent,View view,int postion,int id){
}
});

public class MainActivity extends Activity {    private Spinner sp;    private String[] planets;    private  ArrayAdapter<String> adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sp=(Spinner) findViewById(R.id.sp);        //1.准备数据源        planets=getResources().getStringArray(R.array.planets_array);        //2.将数据源数据加载到控件中        adapter=new ArrayAdapter<String>(MainActivity.this,                android.R.layout.simple_spinner_item, planets);        //设置下拉中的布局资源id        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        //3. 将适配器数据展示到控件中        sp.setAdapter(adapter);        //表示选中下拉列表中的某一项时触发的监听事件        sp.setOnItemSelectedListener(new OnItemSelectedListener() {            /*表示当列表中的某一项被选中时回调的函数             */            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {               String s1=planets[position];               String s2=adapter.getItem(position);               String s3=parent.getItemAtPosition(position).toString();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });    }}
public class MainActivity extends Activity {    private AutoCompleteTextView auto;    private String[] citys;    private ArrayAdapter<String> adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        auto=(AutoCompleteTextView) findViewById(R.id.auto);        citys=getResources().getStringArray(R.array.city);        adapter=new ArrayAdapter<String>(this,                 android.R.layout.simple_list_item_1, citys);        auto.setAdapter(adapter);        //表示当AutoCompleteTextView控件列表中某一项被点击时触发的监听事件        auto.setOnItemClickListener(new OnItemClickListener() {            /*             * 表示当列表中的某一项被点击时回调的函数             * AdapterView<?> parent,  表示当前item被点击的控件             * View view,  表示当前被点击的item的view对象               int position, 表示当前点击的item的下标位置               long id 表示当前被点击的item的行id             */            @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {               String s1=citys[position];//根据下标在数据源中获取               String s2=adapter.getItem(position);//根据下标在适配器中获取               String s3=parent.getItemAtPosition(position).toString();//根据下标在适配器控件中获取//             Log.i("tag","s1="+s1+",s2="+s2+",s3="+s3);            }        });        //edittext类中具有  表示当AutoCompleteTextView中文本发生改变时触发的事件        auto.addTextChangedListener(new TextWatcher() {            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {                Log.i("tag", "-----onTextChanged---");            }            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                Log.i("tag", "-----beforeTextChanged---");            }            @Override            public void afterTextChanged(Editable s) {                Log.i("tag", "-----afterTextChanged---"+s.toString());            }        });    }}
0 0
原创粉丝点击