我想创建一个类似于此的自定义PopupWindow:
http://android-er.blogspot.kr/2012/03/example-of-using-popupwindow.html
在此示例中,PopupWindow是由活动中的按钮单击事件创建的,但我想通过另一个应用程序的意图创建PopupWindow。 可能吗?任何评论都将非常感谢!
答案 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"
并用你的意图调用活动。希望你明白了。 :)