- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 Android 微调器,我想在微调器的选择面板显示时用户按下“后退键”时监听事件。我已经实现了 OnItemSelectedListener ,但是当按下返回时没有调用 onNothingSelected(AdapterView arg0)键。
我只想在用户什么都不选择(或选择面板消失)时监听事件。
有正确的方法吗?
谢谢!
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
s1.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, int position, long id) {
showToast("Spinner1: position=" + position + " id=" + id);
}
public void onNothingSelected(AdapterView<?> parent) {
showToast("Spinner1: unselected");
}
});
This is a sample in Android 2.2 SDK,it's also not show "Spinner1: unselected"when the select panel disappear.
最佳答案
看起来如果不扩展 Spinner
类,您将无法做您想做的事。 Spinner
似乎没有向它构建的用于显示项目的 AlertDialog
注册 OnCancelListener
。
代码来自 Spinner.java :
@Override
public boolean performClick() {
boolean handled = super.performClick();
if (!handled) {
handled = true;
Context context = getContext();
final DropDownAdapter adapter = new DropDownAdapter(getAdapter());
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (mPrompt != null) {
builder.setTitle(mPrompt);
}
mPopup = builder.setSingleChoiceItems(adapter, getSelectedItemPosition(), this).show();
}
return handled;
}
public void onClick(DialogInterface dialog, int which) {
setSelection(which);
dialog.dismiss();
mPopup = null;
}
此外,setSelection
仅在单击对话框中的项目时调用。当用户按下后退按钮时不会调用此方法,因为这是一个 OnCancel
事件。
扩展 Spinner
会有点痛苦,因为您必须将所有内容从 android 源复制回 AdapterView
到您的源中,因为实现所需的各种成员字段是仅在包级别公开。
关于android - 为什么没有调用微调器中的 onNothingSelected?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474029/
我有一个 Android 微调器,我想在微调器的选择面板显示时用户按下“后退键”时监听事件。我已经实现了 OnItemSelectedListener ,但是当按下返回时没有调用 onNothingS
在 Activity 启动时选择 Spinner item spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
在我的应用程序中,我有一个具有 3 个值的微调器。 如果你按第一个,它应该转到 Activity :上传图片 如果你按第二个,它应该转到 Activity: ChangePassword 如果你按最后
任何人都可以通过示例向我解释 Spinner 的 onNothingSelected() 的实现 public class SpinnerActivity extends Activity imple
OnItemSelectedListener 需要实现两个方法:onItemSelected 和 onNothingSelected。我很好奇并尝试在 onNothingSelected 方法中执行一
母语为英语,所以我想对你们说对不起我糟糕的英语水平。 我从 5 周前开始研究 Android。我试图实现一个微调器,我的导师问为什么需要 onNothingSelected 方法。我无话可说。 那么,
我只是想知道是否有人可以帮助我解决我目前面临的问题,因为我正在尝试使用微调器实现 setOnItemSelectedListener 和 onNothingSelected 事件。 一旦用户从微调器中
我为 BarChart 设置了 OnChartValueSelectedListener 但是当我点击任何条形图或 BarChart 中的任何地方时只有 onNothingSelected() 正在调
我是一名优秀的程序员,十分优秀!