Android 纺纱机;适配器错误:在空对象引用上
晚上好,Android 纺纱机;适配器错误:在空对象引用上,android,spinner,adapter,Android,Spinner,Adapter,晚上好, 所以我不知道。我得到了一个 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)” 基本上我知道空对象引用意味着没有分配某些内容(是的,我是编程新手!) 它看起来像findviewbyd(R.id.spinner1)正在返回null。 请尝试在活动中的setContentView函数中检查布局,您的Spinn
所以我不知道。我得到了一个
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)”
基本上我知道空对象引用意味着没有分配某些内容(是的,我是编程新手!)
它看起来像
findviewbyd(R.id.spinner1)代码>正在返回null
。
请尝试在活动中的setContentView
函数中检查布局,您的Spinner
必须在布局中定义id“@+id/spinner1”您的代码:Spinner Spinner=findviewbyd(R.id.spinner1)代码>
这应该是Spinner Spinner=(Spinner)findViewById(R.id.spinner1)代码>
或者如果它是在一个片段中
builder.setView(fragmentView);
(Spinner)fragmentView.findViewById(R.id.spinner1);
希望这有帮助 可能您使用了错误的文件。检查微调器的位置以及尝试设置适配器的位置。
例如,微调器存在于settings\u activity.xml中,但您可以尝试在main\u activity中设置适配器。java
微调器被定义为带有“.=@+id/…”的微调器1。您对setContentView的确切含义是什么?很抱歉,我是新来的,我不完全理解它。在onCreate函数中的活动中,必须调用setContentView(R.layout.**)以将活动与布局(***-微调器定义的布局的名称)绑定,因此我添加了setContentView(R.layout.fragment_kaloreinechner);但是错误仍然是相同的您的函数必须看起来像@Override protected void onCreate(@Nullable Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.fragment_kaloreinechner);}但是我看到您的布局名称包含fragment,如果您的代码是一个片段,那么我们必须在您的片段中编写类似以下内容的公共视图onCreateView(LayoutFlater充气器、ViewGroup容器、Bundle savedInstanceState){return inflater.inflate(R.layout.fragment_Kaloreinechner、容器、false);}好的,问题是:我已经有了一个导航抽屉,所以它看起来是这样的:@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.fragment_kaloreinechner);setContentView(R.layout.activity_main);//我该怎么办?因为没有setContentView(R.layout.activity_main);应用程序也会崩溃&如果我同时编写了它们,当然这也不起作用。我认为findViewById
将返回null而不是对象。id等于R.id.spinner1的对象是否存在?spinner1的可能副本在fragment_kalorienrechner.xml中定义为“spinner1”。。
@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;
}
builder.setView(fragmentView);
(Spinner)fragmentView.findViewById(R.id.spinner1);