2016-06-01 14 views
0

2つのテキストビューを含むポップアップウィンドウがあります。androidのポップアップウィンドウ内のアイテムのonClickListnerの設定

ユーザーが1つのテキストビューをクリックした場合、トーストが表示されなければなりません。この機能のためにコード化されていますが、Nullpointer exception行に表示されますfar.setOnClickListener(new OnClickListener() {これを手伝ってください。

マイコード:

btn_a.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      LayoutInflater lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View popup_view = lInflater.inflate(R.layout.popup_a, null); 
      final PopupWindow popup = new PopupWindow(popup_view,200,75,true); 
      popup.setFocusable(true); 
      popup.setBackgroundDrawable(new ColorDrawable()); 
      popup.showAsDropDown(btn_a, 0,0); 

      TextView far = (TextView) rootView.findViewById(R.id.fartext); 
      far.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        Toast.makeText(getActivity(), "Clicked Far", Toast.LENGTH_SHORT).show(); 

       } 
      }); 
     } 
    }); 

答えて

4

変更

TextView far = (TextView) popup_view.findViewById(R.id.fartext); 

代わりにこの

TextView far = (TextView) rootView.findViewById(R.id.fartext); 
+0

私はそれを逃しました。これはうまくいきます。おかげさまで: – tenten

+0

いつもwc @ tenten。 –

2

のこのラインビュー上でクリックリスナーを設定しようとしているので、あなたがNullPointerExceptionを取得これは実際にあなたのpopup_viewの一部であり、rootViewではありません。このようにそれを修正:

TextView far = (TextView) popup_view.findViewById(R.id.fartext); 
      far.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        Toast.makeText(getActivity(), "Clicked Far", Toast.LENGTH_SHORT).show(); 

       } 
      }); 
2

問題ですfareTextが存在しない場合、あなたはrootViewに見ています。あなたは膨らんだレイアウトを調べるべきです。以下のコードを確認してください。

btn_a.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     LayoutInflater lInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View popup_view = lInflater.inflate(R.layout.popup_a, null); 
     final PopupWindow popup = new PopupWindow(popup_view,200,75,true); 
     popup.setFocusable(true); 
     popup.setBackgroundDrawable(new ColorDrawable()); 
     popup.showAsDropDown(btn_a, 0,0); 

     TextView far = (TextView) popup_view.findViewById(R.id.fartext); 
     far.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "Clicked Far", Toast.LENGTH_SHORT).show(); 

      } 
     }); 
    } 
}); 
関連する問題