【发布时间】:2020-03-18 07:52:09
【问题描述】:
晚上好,
所以我不知道。我收到
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on an null object reference
基本上我知道空对象引用意味着没有分配某些东西(是的,我是编程新手!)。
Spinner spinner = findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.palWerte, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter); //here the error happens
spinner.setOnItemSelectedListener(this);
[...]
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_kaz:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new KalorienzählerFragment()).commit();
break;
case R.id.nav_kar:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new KalorienrechnerFragment()).commit();
break;
case R.id.nav_erp:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ErnährungsplanFragment()).commit();
break;
case R.id.nav_trp:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new TrainingsplanFragment()).commit();
break;
case R.id.nav_trh:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new TrainingshilfeFragment()).commit();
break;
case R.id.nav_ala:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new AlarmFragment()).commit();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
【问题讨论】:
-
我认为
findViewById返回的是 null 而不是一个对象。 id 等于 R.id.spinner1 的对象是否存在? -
Spinner 在 fragment_kalorienrechner.xml 中被定义为“spinner1”..