如何在android中以编程方式打开自定义弹出窗口?

时间:2011-11-11 11:06:48

标签: android android-widget

我有一个简单的Android应用程序进行搜索。我有一个自定义弹出窗口来选择过滤器。

我正在开发一个主屏幕应用程序小部件。 app小部件类似于Google Search Widget for android。

弹出一个过滤器,一个搜索框(假)和一个搜索按钮(而不是谷歌的语音按钮)。

除弹出窗口外,一切都很好用。

当在窗口小部件上单击过滤器按钮时,我会触发一个额外的意图,表示单击了主页按钮。

当活动打开时,我检查额外的,并在应该打开弹出窗口的按钮上执行ClickClick()。但那不起作用。任何的想法?

我的代码是这样的 -

在我的小部件中 -

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 && 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 个答案:

答案 0 :(得分:-1)

我正在寻找没有人回复的这个。

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