我有一个checkbox和一个spinner
checkbox选中的时候弹出spinner的下拉列表
如果这个时候按【返回】键取消了下拉列表,那需要把checkbox设置为未选中状态。现在我不知道如何监听下拉列表被取消,请大家支支招。
checkbox选中的时候弹出spinner的下拉列表
如果这个时候按【返回】键取消了下拉列表,那需要把checkbox设置为未选中状态。现在我不知道如何监听下拉列表被取消,请大家支支招。
解决方案 »
- android如何实现大文件下载(只能通过80端口,服务器端用asp.net)
- android 怎么设置hdmi输出 [移动平台 Android]
- String.equals比较两个相同字符为false的问题
- NDK中能编译汇编吗?
- 关于点击事件拦截的一个问题,请指教
- abortBroadcast 起作用.我的优先级已经设置1000 为什么还是不能拦截 短信呢
- 新手跪求大神指点
- 嵌入式to移动互联网(安卓)
- actionbar的tab到底可以放到屏幕的底部吗?如果可以,怎么实现,跪求!
- android 写了一个类,但这个类没有继承activity,我想在这个类中用到toast信息提示
- 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) {}
});