0

私はフラグメントを使用するアプリに取り組んでいます。フラグメントからポップアップを実装することはできますが、非表示機能を実装することはできません (ランタイム例外を取得する) 以下は私のコードです。ここで何が間違っているのかを特定するのを手伝ってください。

コード:

    {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();
                }
            });
            }
        });}`
4

1 に答える 1

0

問題はこの行にあります

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

vこの行はボタン( )であるため、ボタンレイアウトでビューを見つけようとしていますentcal_buttonvを含むレイアウトに変更dismiss_buttonすれば問題ないはずです。

バグをすばやく見つけるのに役立つため、常に意味のある変数名とメソッド名を使用することをお勧めします。名前についてよく読んでください - Clean Code

于 2013-06-28T01:24:28.703 に答える