[英]Close Spinners dropdown when two among all in a groupview are clicked simultaneously
我的Android ViewGroup中有幾個下拉菜單(Spinners)。
當我嘗試同時單擊兩個時,它們都打開。 但是,默認情況下,Android中的行為是:如果微調器被“打開”並且您在某個位置單擊,它會被關閉:偵聽器中未選中的任何內容都不會在Item Selected Listener上被調用。
我希望同時單擊兩個微調框時,都不應該打開它們。 但是,在單選(僅一個微調器)上,它應該可以正常工作。
假設有兩個微調器,兩個都應用於觸摸偵聽器。 或適配器中的getView()就足夠了(不是getDropDownView),但是您想在同一個空間中處理它們。
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
// Toast.makeText(getActivity(), v + " touched",
// Toast.LENGTH_LONG).show();
try {
ActionBarActivity context = (ActionBarActivity) getActivity();
if (context == null) {
// Log.d(tag, "OnTouch spinner context: " + context);
return false;
}
if (main_layout == null) {
return false;
}
int i = v.getId();
switch (i) {
case R.id.spinner1: {
Spinner spnTemp = null;
spnTemp = (Spinner) main_layout.findViewById(R.id.spinner2);
if (spnTemp != null) {
// spnTemp.setSelected(false);
// Log.d(tag, "OnTouch spinner spnTemp.isPressed(): " + spnTemp.isPressed());
if (spnTemp.isPressed()) {
spnTemp.setPressed(false);
}
}
}
break;
case R.id.spinner2: {
Spinner spnTemp = null;
spnTemp = (Spinner) main_layout.findViewById(R.id.spinner1);
if (spnTemp != null) {
// spnTemp.setSelected(false);
// Log.d(tag, "OnTouch spinner spnTemp.isPressed(): " + spnTemp.isPressed());
if (spnTemp.isPressed()) {
spnTemp.setPressed(false);
}
}
}
break;
}
} catch (Exception e) {
Log.e(tag, "OnTouch spinner exception");
}
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.