从片段关闭弹出窗口

时间:2013-06-27 23:03:17

标签: android android-fragments popup

我正在开发一个使用片段的应用程序,我能够从片段实现弹出窗口但无法实现解散功能(获取运行时异常)以下是我的代码。任何人都可以帮我确定我在这里做错了什么。

代码:

    {public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle        savedInstanceState) {

    setHasOptionsMenu(true);
    View fragView = inflater.inflate(R.layout.newrun, container, false);

     entcal_button = (Button)fragView.findViewById(R.id.entercal_button);
     clear_button = (Button)fragView.findViewById(R.id.resetcal_button);
     cal_text=(EditText)fragView.findViewById(R.id.cal_amount);
     setuprunbuttonmethod();
     entcal_button.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {

            final PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.workoutmode_popup,null, false),650,650, true);
            pw.showAtLocation(getView().findViewById(R.id.entercal_button),Gravity.CENTER,0,0);
            Button dismiss_button=(Button)v.findViewById(R.id.dismiss);
            dismiss_button.setOnClickListener(new OnClickListener(){
                public void onClick(View v){
                    pw.dismiss();
                }
            });
            }
        });}`

1 个答案:

答案 0 :(得分:0)

问题出在这一行

Button dismiss_button=(Button)v.findViewById(R.id.dismiss);

您正尝试在按钮布局中查找视图,因为此行是v按钮(entcal_button)。 将v更改为包含dismiss_button的布局,您应该没问题。

我建议总是使用有意义的变量和方法名称,因为它有助于快速找到错误。关于名字的好读 - Clean Code