如何从Spinner选定的事件中读取字符串

时间:2011-12-12 21:10:01

标签: android spinner

我有一个简单的应用程序,用户选择其中一个美国州,所选州将用于列出该州的所有县。在onCreate中,我构建了一个名为Stateadapter的arrayadapter,并将其设置为微调器对象“spinState”。然后我初始化了一个监听器类StateOnItemSelectedListener。在onCreate之外,我有StateOnItemSelectedListener类,它将读取在微调器中选择的状态,然后执行应用程序的其余任务。

我有两个问题:当在调试模式下单步执行代码时,“parent.getItemAtPosition(pos).toString”不返回所选状态的字符串值(尽管许多Web示例表明这应该有效)。

其次,在运行时,应用程序在通过onCreate时触发侦听器,并且所有内容都显示良好,直到用户选择ui上的微调器,然后应用程序执行强制关闭。

@Override
public void onCreate(Bundle savedInstanceState)
{       
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main);

    spinState = (Spinner)this.findViewById(R.id.spinState); 

    ArrayAdapter<String> Stateadapter = new ArrayAdapter<String>                        (this,android.R.layout.simple_spinner_item, array_spinState);
    Stateadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    spinState.setAdapter(Stateadapter);   

    spinState.setOnItemSelectedListener(new StateOnItemSelectedListener());

}   

public class StateOnItemSelectedListener implements OnItemSelectedListener
{   
    public void onItemSelected(AdapterView<?> parent, View itemSelected,  int pos, long         id) 
    {   State = spinState.getItemAtPosition(pos).toString();
        //Do Stuff base on State;
    }

    public void onNothingSelected(AdapterView<?> parent)
    {   //Do nothing here 
    } 
}

1 个答案:

答案 0 :(得分:0)

尝试在Spinner Tutorial中执行的操作,他们以不同的方式创建适配器,但最终他们使用相同的代码访问所选项目并且它可以正常工作。

强制关闭时日志cat中的错误是什么,getItemAtPosition 返回的是什么?