1

メインのアクティビティ内にポップアップを表示する必要があるアプリに取り組んでいます。ポップアップには、操作を実行するために必要なボタンが1つあります。

以下の私のコードをご覧ください。コードはエラーを出しませんが、ポップアップウィンドウのボタンクリックは機能しません。

imgOpenPopup = (ImageView) findViewById(R.id.places);

        imgOpenPopup.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                LayoutInflater inflater = (LayoutInflater) ConvergeActivity.this
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                View popupView = inflater.inflate(R.layout.placepopup,(ViewGroup)findViewById(R.layout.maincam));  

                popupWindow = new PopupWindow(inflater.inflate(
                        R.layout.placepopup, null, false), 200, 265, true);

                popupWindow.showAtLocation(findViewById(R.id.places),
                        Gravity.CENTER, 0, 0);


                 objbtnpopupOk=(Button)popupView.findViewById(R.id.btnokpopup); 

                objbtnpopupOk.setOnClickListener(new OnClickListener() 
                { 
                    @Override
                    public void onClick(View v) 
                    { 
                        Toast.makeText(getApplicationContext(), " hi thrtrt  " ,Toast.LENGTH_LONG).show();
                    } 
            }); 

            }
        });
4

6 に答える 6

3

何が悪かったのか本当にわかりませんが、この解決策はうまくいき ました。

乾杯。

于 2012-08-30T08:49:48.840 に答える
3

これを試して:

View popupView = inflater.inflate(R.layout.placepopup,(ViewGroup)findViewById(R.layout.maincam));  
popupWindow = new PopupWindow(popupView, 200, 265, true);

代わりにこれ:

View popupView = inflater.inflate(R.layout.placepopup,(ViewGroup)findViewById(R.layout.maincam));  
popupWindow = new PopupWindow(inflater.inflate(R.layout.placepopup, null, false), 200, 265, true);
于 2012-08-30T08:29:03.033 に答える
1

私はそれをこのように行いました:

 popupWindow.getContentView().setOnClickListener(new OnClickListener()...);

お役に立てば幸いです。

于 2017-06-19T13:25:32.393 に答える
0

OnClickListenerからポップアップウィンドウの作成を解除してみてください。onClickでは、メソッドを呼び出してポップアップウィンドウを表示します。最適化の改善はほとんどなく、問題を解決できます。

于 2012-08-30T07:48:46.973 に答える
0

使ってみませんかAlertDialog。このアラートダイアログを読む

于 2012-08-30T07:50:23.080 に答える
0

別のアクティビティでポップアップを実行します:

このテーマをスタイルファイルに追加してから、マニフェストファイルでポップアップするアクティビティに設定します。ボタンは別のアクティビティで機能すると確信しています。

<resources>
<style name="Theme.Transparent" parent="android:Theme"> 
    <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>

于 2012-08-30T07:51:44.213 に答える