Раскрывающийся список "Закрыть счетчики" при одновременном нажатии двух из всех в групповом представлении
У меня есть несколько выпадающих (Spinners) в моей Android ViewGroup.
Когда я пытаюсь щелкнуть два из них одновременно, они оба открываются. Однако в Android по умолчанию существует поведение, согласно которому, если спиннер "открыт" и вы где-то щелкаете, он закрывается: Ничто, выбранное в слушателе, не вызывается в Item Selected Listener.
Я хочу, чтобы при одновременном нажатии на оба Spinners ни один из них не открылся. Однако при одном выборе (только один Spinner) он должен работать правильно.
1 ответ
Скажем, есть два счетчика, примените на слушателя касание на обоих. или 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;
}