2017-05-18 8 views
0

を返します。私のadapterの各メニュー項目が同じPopUpMenuを持ってgetView()方法では、が、私はこれを持って私のメニューのXMLで発生する、NullPointer

<item 
    android:id="@+id/action_payoff" 
    android:visible="true" 
    android:checkable="true"/> 

を、私はこれを行う:

holder.ib.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      PopupMenu popup = new PopupMenu(getContext(), v); 
      popup.getMenu().findItem(R.id.action_payoff).setChecked(true); 

NullPointerExceptionとなります。 setChecked(true);を削除すると、すべて正常に機能します(私のPopUpMenuアイテムのチェックボックスはチェックされていません)

誰でもこのことについて考えていますか?

サイドノート:まだ組み込まれていないロジックがいくつかあります。私は単にメニュー項目にプログラム的にアクセスしようとしていましたが、条件付きでSharedPreferenceと接続しました。

+0

しかし、なぜあなたはそれが 'null'なのでを返さないであろうことを期待していますか?かなり明らかに、 'PopupMenu'の' Menu'に 'MenuItem'はありません。あなたは' PopupMenu'にその項目を含めるために何もしませんでした。 – azizbekian

+0

@azizbekian私はそれを明らかに考慮しませんでした。行のその部分が削除されたとき(xmlではなく)チェックボックス付きのメニュー項目があり、そのIDが – KickingLettuce

+0

@azizbekianなんて、今修正されています。私はその行をポップアップ 'show()'の後に移動します。 – KickingLettuce

答えて

0

私はそうのように、show()メソッドの後のコードの行を移動することによって、それを修正:

popup.show();     
popup.getMenu().findItem(R.id.action_include_payoff).setChecked(true); 
関連する問題