Как открыть пользовательское всплывающее окно программно в Android?

#android #android-widget

#Android #android-виджет

Вопрос:

У меня есть простое приложение для Android, которое выполняет поиск. У меня есть пользовательское всплывающее окно для выбора фильтров.

Сейчас я разрабатываю виджет приложения для рабочего стола для этого. Виджет приложения похож на виджет поиска Google для Android.

Появляется фильтр, окно поиска (поддельное) и кнопка поиска (вместо голосовой кнопки Google).

Все работает отлично, за исключением всплывающего окна.

При нажатии кнопки фильтра в виджете я запускаю intent с дополнительным значением, указывающим, что нажата кнопка home.

Когда открывается действие, я проверяю наличие дополнительного и выполняю Click () на кнопке, которая должна открывать всплывающее окно. Но это не работает. Есть идеи?

Мой код выглядит примерно так —

В виджете у меня есть —

 Intent intent = new Intent(context, ActivityToOpen.class);

Bundle bundle = new Bundle();
bundle.putBoolean(CALL_FROM_WIDGET, true);
bundle.putBoolean(HOME_BUTTON_CLICKED, true);
intent.putExtras(loginBundle);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
  

В действии у меня есть —

 Bundle b = getIntent().getExtras();
if(b != null amp;amp; b.getBoolean(CMWidget.HOME_BUTTON_CLICKED)) {
home_button.performClick();
}
  

У меня в OnClickListener установлено что-то вроде этого —

 home_button = findViewById(R.id.home_button);
home_button.setOnClickListener(new OnClickListener() {

i have implemented onClick() here which pops up the custom popup menu. Popup menu has Quick Action Items.  

});
  

Комментарии:

1. Не могли бы вы опубликовать свой код? Без кода трудно найти проблему.

2. У меня есть вопрос, обновленный с помощью кода.

3. Приятель, ты опубликовал весь код, но не тот, в котором есть проблема.. Как вы реализовали пользовательское всплывающее окно? Возможно, у этого есть некоторые проблемы

Ответ №1:

Я искал это, на которое никто не ответил.

 Bundle b = getIntent().getExtras();
if(b != null amp;amp; b.getBoolean(CMWidget.HOME_BUTTON_CLICKED)) {
findViewById(R.id.anchor_button).post(new Runnable() {
            @Override
            public void run() {
                showPopup();
            }
}