2

Android サポート ライブラリ - 25.0.0 から新しくリリースされた Bottom Navigation View を使用しています。そして、私は onNavigationItemSelectedListener を設定しようとしていますが、何も起こりません。プロジェクトをデバッグしようとすると、「No such instance field: 'bottomNavigationView'」というエラーが表示されますが、bottomNavigationView は初期化され、メソッド「getMaxItemCount」は完全に機能します。

「navigationListener」の問題だけでなく、onClickListenerの問題でもあることに気付きました。このコードのため:

bottomNavigationView = (BottomNavigationView) viewHierarchy.findViewById(R.id.tender_bottom_navigation);
bottomNavigationView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast toast = Toast.makeText(getActivity(), "clicky-clicky", Toast.LENGTH_LONG);
            toast.show();
        }
    });

も同じエラーを提供します。ここのブール値で同じ間違いをサイトで見ましたが、これに対する最も一般的な答えは「Androidスタジオを再起動する/プロジェクトをクリーンアップする」でした。私はそれをやった。これについて何か考えはありますか?

フラグメント内に bottomNavigationView を実装する方法はないのでしょうか?

編集:アクティビティクラスでこのコードを試してみましたが、うまくいきます! では、なぜ彼はフラグメントのフィールドを失うのでしょうか? それは今でも私にとって謎です。

エラー

編集 2:フラグメント コード全体。

public class NewTenderFragment extends Fragment {

   BottomNavigationView bottomNavigationView;

   FragmentManager fragmentManager;
   FragmentTransaction fragmentTransaction;
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
   }

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

       View viewHierarchy = inflater.inflate(R.layout.fragment_new_tender, container, false);
       bottomNavigationView = (BottomNavigationView) viewHierarchy.findViewById(R.id.tender_bottom_navigation);
       int t = bottomNavigationView.getMaxItemCount(); //this returns "5"
       bottomNavigationView.setOnClickListener(new View.OnClickListener() { //this returns such error
        @Override
        public void onClick(View view) {
            Toast toast = Toast.makeText(getActivity(), "clicky-clicky", Toast.LENGTH_LONG);
            toast.show();
        }
    });
   return viewHierarchy;
 }
4

0 に答える 0