我想创建一个与此类似的自定义 PopupWindow:
http://android-er.blogspot.kr/2012/03/example-of-using-popupwindow.html
在此示例中,PopupWindow 是由活动中的按钮单击事件创建的,但我想通过来自另一个应用程序的意图创建 PopupWindow。可能吗?任何意见将不胜感激!
我想创建一个与此类似的自定义 PopupWindow:
http://android-er.blogspot.kr/2012/03/example-of-using-popupwindow.html
在此示例中,PopupWindow 是由活动中的按钮单击事件创建的,但我想通过来自另一个应用程序的意图创建 PopupWindow。可能吗?任何意见将不胜感激!
这个想法是声明一个标准的活动,使其看起来像一个弹出窗口。
使用此代码(标准样板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
为PopupTHE_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);
你的要求不是很清楚。当您想要切换到另一个活动或可能将意图发送到某种服务时,通常会使用意图。如果你想为一个动作打开一个对话框,你真的不需要意图。
使用您的自定义设计创建一个活动,在清单文件中注册活动时,只需添加它android:theme="@android:style/Theme.Dialog"
并根据您的意图调用活动。希望你明白了。:)