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);
    }
});

たとえば、ポップアップActivityPopupという名前を付けた場合THE_POPUP_ACTIVITY.classPopup.class

ここで、このアクティビティのマニフェストで、 を宣言し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>

また、 Popup アクティビティの中で、 I say mightonCreate()の直後にこのステートメントを追加することをお勧めします。なぜなら、どのように表示させたいかは、I popup アクティビティのプログラミング方法とは異なる場合があるためです。setContentView(R.layout.THE_LAYOUT_XML);

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 に答える