我在实现BottomNavigationView时有一个运行时异常,
由: com.google.android.material.bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener)‘引起的
:尝试在空对象引用上调用虚拟方法的void
这是我的代码:
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import com.google.android.material.bottomnavigation.BottomNavigationView;
public class MainActivity extends AppCompatActivity {
private BottomNavigationView bottom_nav;
@Override
protected void onCreate(Bundle savedInstanceState) {
bottom_nav= findViewById(R.id.bottom_nav);
getSupportFragmentManager().beginTransaction().add(R.id.fragTutucu, new Frag1());
bottom_nav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment fragment = null;
switch (menuItem.getItemId()){
case R.id.manuel:
fragment= new Frag1();
return true;
case R.id.photo:
fragment= new Frag2();
return true;
case R.id.training:
fragment= new Frag3();
return true;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragTutucu,fragment);
return true;
}
});
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}发布于 2019-10-24 11:47:28
您正在尝试在设置活动视图之前找到BottomNavigationView。您应该首先设置content视图。
按照以下方式重新组织代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// everything other
}发布于 2019-10-24 12:10:01
嗨,您没有对XML文件提供任何引用,包括onCreate方法开头的这些行
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);https://stackoverflow.com/questions/58540608
复制相似问题