我正在使用微调器,当我尝试提取所选微调器项的项ID时显示错误。 我的代码在这里:
public void dispspi()
{
spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter <String> adap= new ArrayAdapter(this, android.R.layout.simple_spinner_item, level);
spinner.setAdapter(adap);
spinner.setOnItemClickListener(new OnItemClickListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3)
{
int item = spinner.getSelectedItemPosition();
p=item;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
});
}
如何获取微调器的项ID?任何帮助表示赞赏。谢谢提前
答案 0 :(得分:13)
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
然后,您可以将覆盖标记添加到所选方法。
答案 1 :(得分:7)
private String selecteditem;
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView adapter, View v, int i, long lng) {
selecteditem = adapter.getItemAtPosition(i).toString();
//or this can be also right: selecteditem = level[i];
}
@Override
public void onNothingSelected(AdapterView<?> parentView)
{
}
});
答案 2 :(得分:0)
spinner3.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int postion, long arg3) {
// TODO Auto-generated method stub
String SpinerValue3 = parent.getItemAtPosition(postion).toString();
Toast.makeText(getBaseContext(),
"You have selected 222 : " + SpinerValue3,
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
答案 3 :(得分:0)
是的,您可以使用一些OnItemSelectedListener
处理所选项目。但是有时候我们想处理微调器的精确点击。例如,隐藏键盘或发送一些分析数据等。在这种情况下,我们应该使用TouchListener
,因为OnClickListener
在Spinner上无法正常工作,并且您可能会出错。所以我建议像这样使用TouchListener
:
someSpinner.setOnTouchListener { _, event -> onTouchSomeSpinner(event)}
fun onTouchSomeSpinner(event: MotionEvent): Boolean {
if(event.action == MotionEvent.ACTION_UP) {
view.hideKeyBoard()
...
}
return false
}
答案 4 :(得分:-1)
你应该在监听器中使用它(OnItemSelectedListener)
public void onNothingSelected(AdapterView<?> arg0) {
}
没有它可能会有效但是要保持一致 但是也可能有其他错误,你能提供错误日志吗?