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 回答