Intereting Posts
StartManagingCursor (курсор) устаревший метод Папка SRC в Eclipse пуста (класс MainActivity не создан) после создания нового проекта Android с использованием Eclipse Как использовать намерение выбора файлового браузера для выбора файла Как определить, расширен ли SearchView? Диалоги Android 4.1.2 называются дважды AFMA_ReceiveMessage не определен Android получает все телефонные номера контактов в ArrayList Как установить эмулятор android 6.0.1 в Android Studio? Android XML Есть ли способ использовать пространство имен инструментов с пользовательскими атрибутами? IOS Facebook Slide Menu для Android Тест эспрессо завершился неудачно после успешного нажатия и блокировки в течение 60 секунд Почему мое приложение все еще отображается в диспетчере задач после его завершения Приложение зависает / замерзает при использовании функции camera.open () – требуется перезапуск устройства Android «высота» не показывает тень Внутренняя ошибка: класс приемника повторных попыток еще не установлен

Закрыть Spinner на клике за пределами Spinner

Я хочу закрыть прядильщик Android, как только я выйду за пределы Spinner. Это возможно?

Solutions Collecting From Web of "Закрыть Spinner на клике за пределами Spinner"

Мне повезло с этим, даже если он не работает полностью.

Аксессуар для плеера получает вид:

public View getView(int position, View v, ViewGroup parent) { if (v == null) { LayoutInflater mLayoutInflater = mActivity.getLayoutInflater(); v = mLayoutInflater.inflate(R.layout.user_row, null); } View tempParent = (View) parent.getParent().getParent().getParent(); tempParent.setOnTouchListener(new MyOnTouchListener(mActivity)); mActivity.setOpen(true); User getUser = mUsers.get(position); return v; } 

Слушатель ontouch:

 public class MyOnTouchListener implements OnTouchListener{ private MyActivity mOverall; public MyTouchListener(MyActivity overall) { mOverall = overall; } public boolean onTouch(View v, MotionEvent event) { if (mOverall.getOpen()) { mOverall.getWindow().setContentView(R.layout.main); //reset your activity screen mOverall.initMainLayout(); //reset any code. most likely what's in your oncreate } return false; } } 

Выбранный прослушиватель:

 public class MySelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { setUser(pos); //or whatever you want to do when the item is selected setOpen(false); } public void onNothingSelected(AdapterView<?> parent) {} } 

Активность

Ваша деятельность с помощью счетчика должна иметь глобальную переменную mOpen с методами get и set. Это связано с тем, что прослушиватель ontouch имеет тенденцию оставаться включенным даже после закрытия списка.

Ограничения этого метода:

Он закрывается, если вы касаетесь счетчика и параметров или сбоку от параметров. Прикосновение к счетчику и ниже параметров все равно не закроет его.

Пытаться

 @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) v.setVisibility(View.GONE); } 

Я хотел бы определить, когда отобразилось меню прядильщика, а также отклонено. После большого поиска не было много хороших решений. Я смог выполнить это, выполнив следующие действия:

  1. Создал собственный класс spinner и переопределит следующий метод:

     @Override public boolean performClick() { this.isDropDownMenuShown = true; //Flag to indicate the spinner menu is shown return super.performClick(); } 
  2. В моей деятельности переопределите метод onWindowFocusChanged (boolean hasFocus). Если hasFocus == true &&, флаг в # 1 установлен в значение true, то счетчик был уволен (может быть либо путем выбора, либо выстукивания вне счетчика).

     @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (actionBarSpinner.isDropdownShown() && hasFocus) { actionBarSpinner.setDropdownShown(false); //Do you work here } 

    }

Удачи!