Spinner弹出下拉列表后按[返回]键的事件如何处理 我有一个checkbox和一个spinnercheckbox选中的时候弹出spinner的下拉列表如果这个时候按【返回】键取消了下拉列表,那需要把checkbox设置为未选中状态。现在我不知道如何监听下拉列表被取消,请大家支支招。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该能知道下拉列表被弹出吧,弹出了你设置一个标记然后按返回键时 在keydown方法中判断标记;如果是spinner将要消失 那么你设置checkbox状态spinner显示时,默认按返回键就是消失的吧 这个还真不知道……下拉列表有可能是CheckBox弹出来的,也有可能是直接触摸弹出来的。如果是直接触摸弹出来的,就不知道了。有办法判断当前下拉列表是弹出的么?或者有相关事件? 已用用onTouch事件解决了。在onTouch的ACTION_UP的时候弹出下拉列表,并返回true即可。完整代码如下:checkbox.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_UP: // 这里弹出下拉列表,并返回true避免事件继续 if (!checkbox.isChecked()) { spinner.performClick(); return true; } } return false; }});checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (!isChecked) { spinner.setSelection(0); } }});spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { checkbox.setChecked(position > 0); } @Override public void onNothingSelected(AdapterView<?> parent) {}}); 不太明白Android java中的语法,请帮我看一下! android下ping需要什么权限 如何用post将xml文件发到网络上 【求】android编译运行快捷键【求分享】 异步加载图片显示时怎样加进度条 有做过vlc移植到android的吗 新人求教!!!如何获得发送邮件的android permission 求助!使用Cocos2d-android 实现悬浮窗问题 CachedBluetoothDevice.java该怎么用? 新人求助 android系统书籍 请教一个关于wifi的问题
然后按返回键时 在keydown方法中判断标记;如果是spinner将要消失 那么你设置checkbox状态
spinner显示时,默认按返回键就是消失的吧
在onTouch的ACTION_UP的时候弹出下拉列表,并返回true即可。完整代码如下:
checkbox.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
// 这里弹出下拉列表,并返回true避免事件继续
if (!checkbox.isChecked()) {
spinner.performClick();
return true;
}
}
return false;
}
});checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (!isChecked) {
spinner.setSelection(0);
}
}
});spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
checkbox.setChecked(position > 0);
} @Override
public void onNothingSelected(AdapterView<?> parent) {}
});