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

a7ab8d6471bb?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

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

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

总结:

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐