Spinenr是一个下拉选择控件。内容需要用adapter进行填充。
下面是一个简单的spinner关联小例子。
首先是页面,最上边的TextView可根据Spinner的选择选择相对应的值。
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="13pt"
/>
<Spinner
android:id="@+id/spinner_a"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Spinner
android:id="@+id/spinner_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
java代码
public class MainActivity extends ActionBarActivity {
private Spinner spinnerA,spinnerB;
private Context context;
private TextView tvShow;
private String strTvShow=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this;
spinnerA=(Spinner)findViewById(R.id.spinner_a);
spinnerB=(Spinner)findViewById(R.id.spinner_b);
tvShow=(TextView)findViewById(R.id.tv_show);
String [] m={"aaa","bbb"};
String [] o={"111","222"};
String [] p={"333","444"};
ArrayAdapter<String> adapter=new ArrayAdapter<String>(context, simple_spinner_item,m);
/*\
* final
* */
final ArrayAdapter<String> adapter1=new ArrayAdapter<String>(this, simple_spinner_item,o);
final ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this, simple_spinner_item,p);
spinnerA.setAdapter(adapter);
spinnerA.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
strTvShow=(String)spinnerA.getSelectedItem();
tvShow.setText(strTvShow);
if(position==0){
spinnerB.setAdapter(adapter1);
}
if(position==1){
spinnerB.setAdapter(adapter2);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
对第一个Spinner设置Item选择监听,把选择的值传给TextView,并根据所选择的item的position对第二个Spinner内容进行相应的填充。
如有错误,敬请指正。