在Spinner、Android中显示数据

在Spinner、Android中显示数据,android,android-spinner,Android,Android Spinner,我想将我的数据从数据库显示到android spinner中 我用了两个旋转器。。 第二个微调器应反映一旦选择了第一个微调器项目,一切正常。数据加载到第二个微调器中,但在选择第二个微调器项目时不会显示到第二个微调器中 Spinner1 = (Spinner)findViewById(R.id.createProfileCitySpinnerId); Spinner2 = (Spinner)findViewById(R.id.createProfileStateSpinnerId); //for

我想将我的数据从数据库显示到android spinner中

我用了两个旋转器。。 第二个微调器应反映一旦选择了第一个微调器项目,一切正常。数据加载到第二个微调器中,但在选择第二个微调器项目时不会显示到第二个微调器中

Spinner1 = (Spinner)findViewById(R.id.createProfileCitySpinnerId);
Spinner2 = (Spinner)findViewById(R.id.createProfileStateSpinnerId);

//for 1st spinner.....(working)
final List<String> list1 = new ArrayList<String>();

ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, 
                 android.R.layout.simple_spinner_item,list1);
Spinner1.setAdapter(adapter1);

//for second spinner...
final List<String> list2 = new ArrayList<String>();
Spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    {
         if(//some condition using id)
         {                     
            list2.add(stateCursor.getString(1));                                
         }
   }    
   @Override
   public void onNothingSelected(AdapterView<?> parent)
   {                    
   }    
});

//everything is working data is loading, but not display once item is selected on 2nd spinner
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list2);
stateSpinner.setAdapter(adapter2);
Spinner1=(Spinner)findViewById(R.id.createProfileCitySpinnerId);
Spinner2=(Spinner)findViewById(R.id.createProfileStateSpinnerId);
//对于第一个微调器…(工作)
最终列表列表1=新的ArrayList();
ArrayAdapter适配器1=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项,列表1);
喷丝头1.设置适配器(适配器1);
//对于第二个微调器。。。
最终列表列表2=新的ArrayList();
Spinner1.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id)
{
if(//使用id的某个条件)
{                     
添加(stateCursor.getString(1));
}
}    
@凌驾
未选择公共无效(AdapterView父级)
{                    
}    
});
//一切正常数据正在加载,但一旦在第二个微调器上选择了项目,则不会显示
ArrayAdapter2=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,列表2);
stateSpinner.setAdapter(适配器2);

调用
适配器2.notifyDataSetChanged()

比如

@Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    {
         if(//some condition using id)
         {                     
            list2.add(stateCursor.getString(1));
            adapter2.notifyDataSetChanged();                               
         }
   } 
通知附加的观察者基础数据已被删除 已更改,任何反映数据集的视图都应刷新自身


您需要将元素直接添加到适配器(而不是列表2),ArrayAdapter保留自己的内部数据。在您的电脑上尝试此代码已选择:

adapter2.add(stateCursor.getString(1));
adapter2.notifyDataSetChanged();

你能发布你的代码吗?我编辑了代码,在spinner中添加值写在下面,没有问题@KKC,很高兴它有帮助!如果您将答案标记为正确,那就太好了,谢谢!
adapter2.add(stateCursor.getString(1));
adapter2.notifyDataSetChanged();