简单的两个Spinner内容相关联,Spinner与TextView关联

来源:互联网 发布:剑亭网络武侠小说 编辑:程序博客网 时间:2024/05/22 06:23

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内容进行相应的填充。

如有错误,敬请指正。



0 0
原创粉丝点击