1

我想创建一个与此类似的自定义 PopupWindow:

http://android-er.blogspot.kr/2012/03/example-of-using-popupwindow.html

在此示例中,PopupWindow 是由活动中的按钮单击事件创建的,但我想通过来自另一个应用程序的意图创建 PopupWindow。可能吗?任何意见将不胜感激!

4

3 回答 3

2

这个想法是声明一个标准的活动,使其看起来像一个弹出窗口。

使用此代码(标准样板Intent代码触发Activity

SOME_WIDGET.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent myIntent = new Intent(getApplicationContext(), THE_POPUP_ACTIVITY.class);
        startActivity(myIntent);
    }
});

例如,如果您将弹出窗口命名ActivityPopupTHE_POPUP_ACTIVITY.class,则将Popup.class

现在,对于这个 Activity,在 Manifest 中声明一个theme. 例如:

这是相应的样式声明:

<style name="DialogNoTitleBar" parent="android:style/Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

此外,在onCreate()Popup Activity 中,您可能希望在setContentView(R.layout.THE_LAYOUT_XML);我所说的可能之后添加此语句,因为您希望它的显示方式可能与我对弹出 Activity 的编程方式不同。

getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
于 2013-04-15T05:05:34.390 回答
1

你的要求不是很清楚。当您想要切换到另一个活动或可能将意图发送到某种服务时,通常会使用意图。如果你想为一个动作打开一个对话框,你真的不需要意图。

于 2013-04-15T05:02:49.847 回答
0

使用您的自定义设计创建一个活动,在清单文件中注册活动时,只需添加它android:theme="@android:style/Theme.Dialog" 并根据您的意图调用活动。希望你明白了。:)

于 2013-04-15T05:03:22.927 回答