Android 的 Spinner下拉菜单如何实现 和二级以上的三级联动 (二)

来源:互联网 发布:java井字棋界面设计 编辑:程序博客网 时间:2024/05/01 23:09

 在我们上一篇中介绍了如何简单的运用Spinner的运用   http://blog.csdn.net/qq_33599978/article/details/53584825,

这里我们在来说说我们当三个或三个以上的Spinner如何进行联动,就是当我们选择湖南的时候第二个城市自己会跳转到张家界的功能。

实现逻辑: 这里我们只要实现当我们点击湖南的对应事件就可以,所以这里我们可以用到setOnItemSelectedListener方法来实现。  





一 . 我们找到上一篇的源码  activity_main.xml  

<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="horizontal"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.m_4spinnew.MainActivity" >   <Spinner android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/sheng_sn"/>    <Spinner android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/cheng_sn"/>    <Spinner android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:id="@+id/qu_sn"/></LinearLayout>
  二 .  

package com.example.m_4spinnew;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity {int num;Spinner sheng_sn, cheng_sn, qu_sn;private String[] sheng = { "江西", "湖南" };private String[][] cheng = { { "城市", "景点" }, { "张家界", "美女" },{ "C周杰伦", "C宝强" } };private String[][][] qu = { { { "南昌", "赣州" }, { "庐山", "龙虎山" }, },{ { "黄石寨", "森林公园" }, { "范冰冰", "唐嫣" },  } };private ArrayAdapter<String> adapter1, adapter2, adapter3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, sheng);adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, cheng[0]);adapter3 = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, qu[0][0]);sheng_sn = (Spinner) findViewById(R.id.sheng_sn);cheng_sn = (Spinner) findViewById(R.id.cheng_sn);qu_sn = (Spinner) findViewById(R.id.qu_sn);sheng_sn.setAdapter(adapter1);cheng_sn.setAdapter(adapter2);qu_sn.setAdapter(adapter3);sheng_sn.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubadapter2 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line, cheng[position]);cheng_sn.setAdapter(adapter2);num=position;Toast.makeText(MainActivity.this, "二级联动", Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}});//33333333333cheng_sn.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubadapter3 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line, qu[num][position]);qu_sn.setAdapter(adapter3);Toast.makeText(MainActivity.this, "三级联动", Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}});}}


1 0
原创粉丝点击