我想做这样一个东西
有两个spinner
spinner1和spinner2
如何在spinner1选择数据后,改变spinner2里面的数据。

解决方案 »

  1.   

    对哇,监听事件,然后改变spinner的值。
      

  2.   

    你定义一个二维数组 根据spinner1的数组位置 放spinner2
      

  3.   


    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    spinner2.setSelection(arg2);
    } public void onNothingSelected(AdapterView<?> arg0) {
    }
      

  4.   

    可能是我没说清楚,我是想选了spinner1的其中一个选项后,spinner2下拉选项的里面的数据重新变换一下
    把我写的代码上上,有句有问题,请各位达人帮忙看看。
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.business);
    //产品名称
    Cursor c1 = database.query(ThingInfo.TABLE_NAME, new String[] {ThingInfo.TSC},
                               null, null, null, null, null);
    c1.moveToFirst();
    CharSequence[] list1 = new CharSequence[c1.getCount()];
    for (int j = 0; j < list1.length; j++) {
    list1[j] = c1.getString(0);
    c1.moveToNext();
    }
    c1.close();

    final Spinner mSpinner2=(Spinner)findViewById(R.id.spinner_name);
    //将可选内容与ArrayAdapter连接起来 
    ArrayAdapter<CharSequence> adapter1 = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list1); 
    //设置下拉列表的风格 
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    //将adapter 添加到spinner中 
    mSpinner2.setAdapter(adapter1); 
    mSpinner2.setVisibility(View.VISIBLE); 
    mSpinner2.setPrompt("请选择事物名称");
    mSpinner2.setOnItemSelectedListener(new MyOnItemSelectedListener());
    }
    public class MyOnItemSelectedListener implements OnItemSelectedListener {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    final Spinner mSpinner2=(Spinner)findViewById(R.id.spinner_name);
    String name=mSpinner2.getSelectedItem().toString();
    Cursor c2 = database.query(ThingInfo.TABLE_NAME, new String[] {ThingInfo.TSL}, "TSC='" +name+ "'", null, null, null, null);
    c2.moveToFirst();
    CharSequence[] list2 = new CharSequence[c2.getCount()];
    for (int k = 0; k < list2.length; k++) {
    list2[k] = c2.getString(0);
    c2.moveToNext();
    }
    c2.close();
    final Spinner mSpinner3=(Spinner)findViewById(R.id.spinner_aname);
    //将可选内容与ArrayAdapter连接起来 
    ArrayAdapter<CharSequence> adapter2 = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list2);  //设置下拉列表的风格  adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    //将adapter 添加到spinner中 
    mSpinner3.setAdapter(adapter2); 
    mSpinner3.setVisibility(View.VISIBLE); 
    mSpinner3.setPrompt("请选择事物详细名称");

    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    // Do nothing.    
    }

    }红色的那句有问题,不知道为什么?
      

  5.   

    把鼠标点在那个上面提示信息如下
    The constructor ArrayAdapter<CharSequence>(business.MyOnItemSelectedListener, int, CharSequence[]) is undefined
      

  6.   


    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    if ((id < 0) || (id >= Config.DEV_TYPES.length))
    return; ArrayAdapter aa = (ArrayAdapter)spDevMode.getAdapter();
    aa.clear();
    if (null != Config.DEV_TYPES[id].models) {
    for (int i=0; i<Config.DEV_TYPES[id].models.length; i++) {
    aa.add(Config.DEV_TYPES[id].models[i]);
    }
    }
    }
    public void onNothingSelected(AdapterView<?> parent) {
    ArrayAdapter aa = (ArrayAdapter)spDevMode.getAdapter();
    aa.clear();
    }
    第一个spineer 设置onItemSelected为上面的代码,其中spDevMode是第二个spinner
    if (null != Config.DEV_TYPES[id].models) {
    for (int i=0; i<Config.DEV_TYPES[id].models.length; i++) {
    aa.add(Config.DEV_TYPES[id].models[i]);
    }
    }
    是给第二个spinner重新设置数据。。
    前面刚做过代码是抠出来的自己改下里面的东西就行
      

  7.   

    对哇,监听事件,然后改变spinner的值。
      

  8.   

    问题已经解决,上面那句红色的话,是因为参数不正确,第一个参数是context,在这里写this是不对的,改为view.getcontext()就好了