2024年10月android spinner(android中spinner如何实现省市二级联动)

 更新时间:2024-10-12

  ⑴androidspinner(android中spinner如何实现省市二级联动

  ⑵示例如下:public?class?MainActivity?extends?Activity?{?private?TextView?textView?;?private?Spinner?province;?private?Spinner?city;?????/**?Called?when?the?activity?is?first?created.?*/?????Override?????public?void?onCreate(Bundle?savedInstanceState)?{?????????super.onCreate(savedInstanceState);?????????setContentView(R.layout.main);?????????????????//String{“-省份-“,“河北省“,“山西省“,“北京“};?????????textView?=?(TextView)this.findViewById(R.id.textView);?????????province?=?(Spinner)this.findViewById(R.id.province);?????????city?=?(Spinner)this.findViewById(R.id.city);?????????????????//(处理省的显示)?????????//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)?????????ArrayAdapter《CharSequence》?adapter?=??????????????ArrayAdapter.createFromResource(this,?R.array.province,?android.R.layout.simple_spinner_item);??????????//new?ArrayAdapter《String》(this,android.R.layout.simple_spinner_item,?provinces);?????????//设置下拉列表的风格?????????adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);?????????????????//将数据绑定到Spinner视图上?????????province.setAdapter(adapter);?????????????????//添加条目被选中监听器?????????province.setOnItemSelectedListener(new?AdapterView.OnItemSelectedListener()?{????????????????Override????public?void?onItemSelected(AdapterView《?》?parent,?View?view,int?position,?long?id)?{?????//parent既是province对象?????Spinner?spinner?=?(Spinner)parent;?????String?pro?=??(String)spinner.getItemAtPosition(position);?????//(处理省的市的显示)?????//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)?????ArrayAdapter《CharSequence》?cityAdapter?=?ArrayAdapter.createFromResource????????????????????(MainActivity.this,?R.array.citydefault,?android.R.layout.simple_spinner_item);??????//new??ArrayAdapter《CharSequence》???????????//???????????(MainActivity.this,android.R.layout.simple_spinner_item,?cities);?????//获取所在省含有哪些市(从资源数组文件中获取数据)?????if(pro.equals(“河北省“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.hb,?android.R.layout.simple_spinner_item);?????}else?if(pro.equals(“北京市“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.bj,?android.R.layout.simple_spinner_item);?????}else?if(pro.equals(“山西省“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.shx,?android.R.layout.simple_spinner_item);?????}?????//绑定数据到Spinner(City)上?????city.setAdapter(cityAdapter);????}????Override????public?void?onNothingSelected(AdapterView《?》?parent)?{????????}????????????????});?????}?}Android控件之Spinner简单使用在drawable包下,新建一个xml文件spinner_background.xml,自定义Spinner的背景:在res/values/styles.xml中添加一个style,然后在Spinner添加这个Theme:在想要添加Spinner控件的layout里添加Spinner控件:这里我在res/values中添加了一个str_array_services.xml:那些string/xxx在strings.xml定义这些字符串.(这里为了更好的耦合性,可以设置成多个语言版本)怎么实现Android的Spinner控件不可编辑spinner是View的子类,View有个属性android:clickable=false就是设置控件不可点击关于Spinner的实例代码:新建一个android工程,importjava.util.ArrayList;importjava.util.List;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.MotionEvent;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.Spinner;importandroid.widget.TextView;publilassSpinnerActivityextendsActivity{??/**Calledwhentheactivityisfirstcreated.*/???privateList《String》list=newArrayList《String》();???privateTextViewmyTextView;???privateSpinnermySpinner;???privateArrayAdapter《String》adapter;???Override???publicvoidonCreate(BundlesavedInstanceState){?????super.onCreate(savedInstanceState);?????setContentView(R.layout.main);?????//第一步:添加一个下拉列表项的list,adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);?????//第四步:将适配器添加到下拉列表上?????mySpinner.setAdapter(adapter);?????//第五步:为下拉列表设置各种事件的响应,这里添加的项就是下拉列表的菜单项?????list.add(“北京“);?????list.add(“上海“);?????list.add(“深圳“);?????list.add(“福州“);?????list.add(“厦门“);?????myTextView=(TextView)findViewById(R.id.TextView_city);?????mySpinner=(Spinner)findViewById(R.id.Spinner_city);?????//第二步:为下拉列表定义一个适配器,adapter=newArrayAdapter《String》(this,android.R.layout.simple_spinner_item,list);?????//第三步:为适配器设置下拉列表下拉时的菜单样式,这个事响应菜单被选中?????mySpinner.setOnItemSelectedListener(newSpinner.OnItemSelectedListener(){???????publicvoidonItemSelected(AdapterView《?》arg,Viewarg,intarg,longarg){?????????//TODOAuto-generatedmethodstub?????????/*将所选mySpinner的值带入myTextView中*/?????????myTextView.setText(“您选择的是:“+adapter.getItem(arg));?????????/*将mySpinner显示*/?????????arg.setVisibility(View.VISIBLE);???????}???????publicvoidonNothingSelected(AdapterView《?》arg){?????????//TODOAuto-generatedmethodstub?????????myTextView.setText(“NONE“);?????????arg.setVisibility(View.VISIBLE);???????}?????});?????/*下拉菜单弹出的内容选项触屏事件处理*/?????mySpinner.setOnTouchListener(newSpinner.OnTouchListener(){???????publicbooleanonTouch(Viewv,MotionEventevent){?????????//TODOAuto-generatedmethodstub?????????/**?????????*??????????*/????????returnfalse;???????}????});?????/*下拉菜单弹出的内容选项焦点改变事件处理*/?????mySpinner.setOnFocusChangeListener(newSpinner.OnFocusChangeListener(){?????publicvoidonFocusChange(Viewv,booleanhasFocus){?????//TODOAuto-generatedmethodstub?????}?????});???}?}.运行效果.点击的效果,本文目录android中spinner如何实现省市二级联动Android控件之Spinner简单使用怎么实现Android的Spinner控件不可编辑android中spinner如何实现省市二级联动??Androidspinner实现省市二级联动,名称为Spinner。

  ⑶android中spinner如何实现省市二级联动

  ⑷Androidspinner实现省市二级联动,需要自定义adpter,将数据源绑定到adpter,当点击省时,触发自定义响应事件,改变市,示例如下:

  ⑸public?class?MainActivity?extends?Activity?{?private?TextView?textView?;?private?Spinner?province;?private?Spinner?city;?????/**?Called?when?the?activity?is?first?created.?*/?????Override?????public?void?onCreate(Bundle?savedInstanceState)?{?????????super.onCreate(savedInstanceState);?????????setContentView(R.layout.main);?????????????????//String{“-省份-“,“河北省“,“山西省“,“北京“};?????????textView?=?(TextView)this.findViewById(R.id.textView);?????????province?=?(Spinner)this.findViewById(R.id.province);?????????city?=?(Spinner)this.findViewById(R.id.city);?????????????????//(处理省的显示)?????????//将可选内容与ArrayAdapter的连接(从资源数组文件中获取数据)?????????ArrayAdapter《CharSequence》?adapter?=??????????????ArrayAdapter.createFromResource(this,?R.array.province,?android.R.layout.simple_spinner_item);??????????//new?ArrayAdapter《String》(this,android.R.layout.simple_spinner_item,?provinces);?????????//设置下拉列表的风格?????????adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);?????????????????//将数据绑定到Spinner视图上?????????province.setAdapter(adapter);?????????????????//添加条目被选中监听器?????????province.setOnItemSelectedListener(new?AdapterView.OnItemSelectedListener()?{????????????????Override????public?void?onItemSelected(AdapterView《?》?parent,?View?view,int?position,?long?id)?{?????//parent既是province对象?????Spinner?spinner?=?(Spinner)parent;?????String?pro?=??(String)spinner.getItemAtPosition(position);?????//(处理省的市的显示)?????//将默认值与ArrayAdapter连接(从资源数组文件中获取数据)?????ArrayAdapter《CharSequence》?cityAdapter?=?ArrayAdapter.createFromResource????????????????????(MainActivity.this,?R.array.citydefault,?android.R.layout.simple_spinner_item);??????//new??ArrayAdapter《CharSequence》???????????//???????????(MainActivity.this,android.R.layout.simple_spinner_item,?cities);?????//获取所在省含有哪些市(从资源数组文件中获取数据)?????if(pro.equals(“河北省“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.hb,?android.R.layout.simple_spinner_item);?????}else?if(pro.equals(“北京市“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.bj,?android.R.layout.simple_spinner_item);?????}else?if(pro.equals(“山西省“)){???????????cityAdapter?=?ArrayAdapter.createFromResource?????????????????(MainActivity.this,?R.array.shx,?android.R.layout.simple_spinner_item);?????}?????//绑定数据到Spinner(City)上?????city.setAdapter(cityAdapter);????}????Override????public?void?onNothingSelected(AdapterView《?》?parent)?{????????}????????????????});?????}?}

  ⑹Android控件之Spinner简单使用

  ⑺在drawable包下,新建一个xml文件spinner_background.xml,自定义Spinner的背景:在res/values/styles.xml中添加一个style,然后在Spinner添加这个Theme:在想要添加Spinner控件的layout里添加Spinner控件:这里我在res/values中添加了一个str_array_services.xml:那些string/xxx在strings.xml定义这些字符串.(这里为了更好的耦合性,可以设置成多个语言版本)

  ⑻怎么实现Android的Spinner控件不可编辑

  ⑼spinner是View的子类,View有个属性android:clickable=false就是设置控件不可点击

  ⑽关于Spinner的实例代码:

  ⑾importjava.util.ArrayList;

  ⑿importjava.util.List;

  ⒀importandroid.app.Activity;

  ⒁importandroid.os.Bundle;

  ⒂importandroid.view.MotionEvent;

  ⒃importandroid.view.View;

  ⒄importandroid.widget.AdapterView;

  ⒅importandroid.widget.ArrayAdapter;

  ⒆importandroid.widget.Spinner;

  ⒇importandroid.widget.TextView;

  ⒈publilassSpinnerActivityextendsActivity{

  ⒉/**Calledwhentheactivityisfirstcreated.*/

  ⒊privateList《String》list=newArrayList《String》();

  ⒋privateTextViewmyTextView;

  ⒌privateSpinnermySpinner;

  ⒍privateArrayAdapter《String》adapter;

  ⒎publicvoidonCreate(BundlesavedInstanceState){

  ⒏super.onCreate(savedInstanceState);

  ⒐setContentView(R.layout.main);

  ⒑//第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项

  ⒒list.add(“北京“);

  ⒓list.add(“上海“);

  ⒔list.add(“深圳“);

  ⒕list.add(“福州“);

  ⒖list.add(“厦门“);

  ⒗myTextView=(TextView)findViewById(R.id.TextView_city);

  ⒘mySpinner=(Spinner)findViewById(R.id.Spinner_city);

  ⒙//第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。

  ⒚adapter=newArrayAdapter《String》(this,android.R.layout.simple_spinner_item,list);

  ⒛//第三步:为适配器设置下拉列表下拉时的菜单样式。

  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  //第四步:将适配器添加到下拉列表上

  mySpinner.setAdapter(adapter);

  //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

  mySpinner.setOnItemSelectedListener(newSpinner.OnItemSelectedListener(){

  publicvoidonItemSelected(AdapterView《?》arg,Viewarg,intarg,longarg){

  //TODOAuto-generatedmethodstub

  /*将所选mySpinner的值带入myTextView中*/

  myTextView.setText(“您选择的是:“+adapter.getItem(arg));

  /*将mySpinner显示*/

  arg.setVisibility(View.VISIBLE);

  publicvoidonNothingSelected(AdapterView《?》arg){

  //TODOAuto-generatedmethodstub

  myTextView.setText(“NONE“);

  arg.setVisibility(View.VISIBLE);

  /*下拉菜单弹出的内容选项触屏事件处理*/

  mySpinner.setOnTouchListener(newSpinner.OnTouchListener(){

  publicbooleanonTouch(Viewv,MotionEventevent){

  //TODOAuto-generatedmethodstub

  returnfalse;

  /*下拉菜单弹出的内容选项焦点改变事件处理*/

  mySpinner.setOnFocusChangeListener(newSpinner.OnFocusChangeListener(){

  publicvoidonFocusChange(Viewv,booleanhasFocus){

  //TODOAuto-generatedmethodstub

您可能感兴趣的文章:

相关文章