我有一个简单的应用程序,用户选择其中一个美国州,所选州将用于列出该州的所有县。在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
}
}
答案 0 :(得分:0)
尝试在Spinner Tutorial中执行的操作,他们以不同的方式创建适配器,但最终他们使用相同的代码访问所选项目并且它可以正常工作。
强制关闭时日志cat中的错误是什么,getItemAtPosition
返回的是什么?