我有一个从数据库填充的微调框。因此,如果单击微调框时没有任何项目,将显示一个空列表项目的微调控件。我想避免在微调控件空白时显示微调控件,并显示一个Toast消息。我有逻辑来检查项目的计数并显示吐司消息,但我找不到调用函数的位置。单击微调器并加载微调项目时调用的事件是什么?当一个android微调框为空时显示一个烤面包信息
回答
Spinner
打算什么的View
子类,因此,View.setOnClickListener()
可以用来改变onClick()
实现点击时将被调用。您可以覆盖onClick()
以检查Spinner
是否为空,然后显示Toast
。
更正:
既然你不能setOnClickListener
为Spinner
,您可以使用该解决方案建议在此question(其中我已经粘贴下面的内容)。
不是设置微调器的OnClickListener,而是设置OnTouchListener和OnKeyListener。
spinner.setOnTouchListener(Spinner_OnTouch);
spinner.setOnKeyListener(Spinner_OnKey);
和听众:
private View.OnTouchListener Spinner_OnTouch = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
doWhatYouWantHere();
}
return true;
}
};
private static View.OnKeyListener Spinner_OnKey = new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
doWhatYouWantHere();
return true;
} else {
return false;
}
}
};
呃显示的ror消息是'不要在AdapterView上调用setOnClickListener.You可能想要使用setOnItemClickListener',但这不适合我的目的。 – viks
为什么不设置onClickListener
?
Spinner s = (Spinner)findViewById(R.id.myspinner);
s.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
checkForItemCount(); //where you show your Toast if it's empty.
}
});
编辑: 我想我不会完全覆盖你的问题,所以我尝试了一些代码自己。这完全适用于你。
final Spinner s = (Spinner)findViewById(R.id.spinner1); // get reference
ArrayList<String> mList = new ArrayList<String>(); //some list without items
s.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mList));
s.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && mList.size() == 0) {
toast("Empty"); //lazy method for toasting
s.setPressed(false); //closes the spinner.
}
return true;
}
});
这是当选择一个项目时,如果这就是你要求的功能。如需更多帮助,您需要发布您的代码。否则,我们不知道你有
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
不,我想避免如果计数为0,则显示微调项目。我必须检查用户何时点击文本框,如在微调器位置显示的视图 – viks
- 1. 从微调框显示烤面包时的上下文错误
- 2. Android烤面包不显示
- 3. 选择微调项目时显示烤面包
- 4. 从相机识别文本时显示烤面包信息
- 5. 微调列表显示时,按微调但列表项不显示,但没有显示在烤面包
- 6. Android微调器检索值显示为烤面包,但无法继续使用?
- 7. 当我从另一个主视图返回时,不会显示Android微调框
- 8. Android如烤面包的WinForms消息框?
- 9. 我想烤面包时的消息要显示当Android的闹铃响铃
- 10. 当JSONArray给出一个空值时显示一个文本 - android
- 11. AngularJS,烤面包机如何杀死一个烤面包机
- 12. 如何在Angularjs中显示烤面包机信息?
- 13. Android:无法显示烤面包
- 14. Android烤面包没有显示
- 15. 如何显示从一个活动到另一个活动的烤面包
- 16. 如何在一个烤面包中显示一个html/php代码
- 17. WPF - 当下一个页面显示时,属性为空
- 18. 无法显示烤面包
- 19. 当我点击一个微调项目时,它会显示一个ListView
- 20. 在烤面包上显示时间戳
- 21. Android:在烤面包上显示消息和联系人
- 22. 如何从第一个微调到第二微调在android中的信息?
- 23. 微调烤箱吐司不显示
- 24. 微调空间一个NSString
- 25. 显示()/隐藏()把一个busyloading微调
- 26. 显示一个开放的微调
- 27. 取消先前显示的烤面包之前显示新的烤面包
- 28. 当我在一个按钮上初始化两个功能(退出应用程序并显示烤面包)时,退出烤面包不起作用
- 29. 一次显示最多一个信息框(谷歌地图v3)
- 30. Google地图V3 - 一次只允许显示一个信息框
我添加了一些代码,对我来说它的工作原理完全。 – stealthjong