Android 为什么我不能选择微调器的第一选择?

Android 为什么我不能选择微调器的第一选择?,android,list,drop-down-menu,spinner,default,Android,List,Drop Down Menu,Spinner,Default,我创建了一个微调器,其中第一个选择显示为默认值。但是如果我点击这个,它就不起作用了 protected boolean inhibit_spinner = true; @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String item = parent.getItemAtPosition(position).toString()

我创建了一个微调器,其中第一个选择显示为默认值。但是如果我点击这个,它就不起作用了

protected boolean inhibit_spinner = true;

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String item = parent.getItemAtPosition(position).toString();

    if (inhibit_spinner) {
        inhibit_spinner = false;
    }else {
        Toast.makeText(parent.getContext(), item, Toast.LENGTH_LONG).show();
        Intent intent = new Intent(Selection.this, MainActivity.class);
        intent.putExtra("selection", item);
        startActivity(intent);
        finish();
    }
}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}
protected boolean inhibit\u微调器=true;
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String item=parent.getItemAtPosition(position.toString();
if(禁止旋转器){
抑制_微调器=假;
}否则{
Toast.makeText(parent.getContext(),item,Toast.LENGTH_LONG.show();
意向意向=新意向(Selection.this,MainActivity.class);
意向。额外(“选择”,项目);
星触觉(意向);
完成();
}
}
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}

如果我单击微调器并选择任何其他选项,它会抛出活动,但如果我单击它并选择默认值(第一个选项),它不会抛出活动。为什么?

只有当用户在微调器中选择了与当前所选项目不同的项目时,才会调用MSelected函数

例如:

如果微调器项目为item1、item2、item3和item4

  • 选择item4,然后调用所选函数,位置为3
  • 再次选择item4,但这次不会调用所选函数
  • 选择item0,然后调用所选函数,位置为0
  • 再次选择item0,但这次不会调用所选函数
我认为您需要稍微更改一下应用程序流程。为用户提供一个按钮,而不是转到选择微调器项目的下一个活动。用户可以使用微调器选择所需的选项。当他单击按钮时,使用函数“spinner.getSelectedItem()”从spinner获取当前选定的项目,并将其传递给下一个活动


如果这不能解决您的问题,请告诉我。

默认情况下,选择第一个选项(位置0)。因此,由于位置未更改,因此不会调用所选的

尝试添加类似“Select one”的元素作为第一个选项以避免此行为