私は、nav drawerのトップロゴを、アプリケーションの最初の断片に戻すボタンとして機能させようとしていますが、ボタンをまったく機能させることはできません。単純なタスクでも、トーストのような。アプリを開くとアプリがクラッシュするので、ボタンを使ってみることさえできません。ナビゲーションドロワーのトップロゴをボタンとして正しく動作させるにはどうすればよいですか?
これは私が取得エラーです:
「nullオブジェクト参照上の仮想メソッド 『空android.widget.ImageButton.setOnClickListenerを(android.view.View $ OnClickListener』)呼び出すため試みを」のロゴXMLのImageButtonとして宣言されており、これはJavaコードです。
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public ImageButton logo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Set the initial fragment
MainFragment mainFragment = new MainFragment();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mainFragment);
fragmentTransaction.commit();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
logo = (ImageButton) findViewById(R.id.main_icon);
logo.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast toast = Toast.makeText(getApplicationContext(), "works", Toast.LENGTH_SHORT);
toast.show();
}
});
}
これはそれです。文字通り15分前にそれを分かりましたが、とにかく感謝しています。私はXMLでonClick属性を設定することは考えていませんでしたが、これは私の考えではより組織化された方法のように思えるので使用しました。 – Shinr3x