下拉控件Spinner默认显示列表第一个内容

a7ab8d6471bb?_=1509605436

C2660F3A-F267-435B-8875-B226424A5C0F.png

设置默认值为空

boolean b = true;

private Spinner mSp_game_name;

mSp_game_name.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

if (b) {

// 主要功能代码;

view.setVisibility(View.INVISIBLE);

} else {

//获取到对象

PhotoEntity photoEntity = (PhotoEntity)mSp_game_name.getSelectedItem();

}

b = false;

}

@Override

public void onNothingSelected(AdapterView> parent) {

// TODO Auto-generated method stub

}

});

2.设置完成后,达到我们的预期的效果了

a7ab8d6471bb?_=1509605436

C8D9D497-2581-40A4-9EF7-BF403DDF0814.png

3.问题:此时点击“守望先锋”无任何反应,点击其他选项是没有问题的

4.解决:Spinner设置完适配器数据后(这里必须先给适配器设置数据),然后调用Spinner.setSelection(2, true);这样导致点击第二项是没反应的。

总结:

Spinner默认已经选择了第一项(回调了setOnItemSelectedListener函数),所以导致再次点击第一项是没反应,Spinner.setSelection(2, true)使Spinner默认选择第二项,导致再次点击第二项没反应,点击其他选项是有反应的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐