如何从intent调用创建自定义PopupWindow?

时间:2013-04-15 04:39:22

标签: android android-intent popupwindow

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

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

在此示例中,PopupWindow是由活动中的按钮单击事件创建的,但我想通过另一个应用程序的意图创建PopupWindow。 可能吗?任何评论都将非常感谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我们的想法是声明一个标准的Activity,使其看起来像一个Popup窗口。

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

SOME_WIDGET.setOnClickListener(new OnClickListener() {

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

例如,如果您将弹出式广告Activity命名为弹出式广告,则将THE_POPUP_ACTIVITY.class替换为 Popup.class

现在,对于此活动,在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()中,您可能希望在setContentView(R.layout.THE_LAYOUT_XML);我说可能之后立即添加此声明,因为您希望它出现的方式可能如何与我编写弹出式活动的方式不同。

getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

答案 2 :(得分:0)

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