spinner.setAdapter(适配器)上的 NullPointerException
NullPointerException on spinner.setAdapter(adapter)
我是编程新手,所以请原谅我有这个简单的问题。
我的问题是我在尝试 运行 这段代码时遇到 NullPointerException,因为我无法在微调器上调用 setAdapter 方法。(微调器似乎为空,所以这就是原因:c)
我很感激解决这个问题的每一个建议:)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawer=findViewById(R.id.draw_layout);
NavigationView navigationView=findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
ActionBarDrawerToggle toggle= new ActionBarDrawerToggle(this, drawer, toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
if (savedInstanceState==null){
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new TrackingPlanFragment()).commit();
navigationView.setCheckedItem(R.id.nav_home);}
textInputExercise=findViewById(R.id.text_input_exercise);
textInputWeight=findViewById(R.id.text_input_weight);
textInputSets=findViewById(R.id.text_input_sets);
textInputReps=findViewById(R.id.text_input_reps);
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,R.array.numbers,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
at com.example.fitenss_tracking_app.MainActivity.onCreate(MainActivity.java:61)
好的,我终于找到问题了。
问题是,我没有将微调器放在 activity_main.xml 文件中,而是放在可以在此 activity 中调用的片段的 xml 文件中。
现在我已经改变了代码工作得很好。
我是编程新手,所以请原谅我有这个简单的问题。 我的问题是我在尝试 运行 这段代码时遇到 NullPointerException,因为我无法在微调器上调用 setAdapter 方法。(微调器似乎为空,所以这就是原因:c) 我很感激解决这个问题的每一个建议:)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar=findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawer=findViewById(R.id.draw_layout);
NavigationView navigationView=findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
ActionBarDrawerToggle toggle= new ActionBarDrawerToggle(this, drawer, toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
if (savedInstanceState==null){
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new TrackingPlanFragment()).commit();
navigationView.setCheckedItem(R.id.nav_home);}
textInputExercise=findViewById(R.id.text_input_exercise);
textInputWeight=findViewById(R.id.text_input_weight);
textInputSets=findViewById(R.id.text_input_sets);
textInputReps=findViewById(R.id.text_input_reps);
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,R.array.numbers,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
at com.example.fitenss_tracking_app.MainActivity.onCreate(MainActivity.java:61)
好的,我终于找到问题了。 问题是,我没有将微调器放在 activity_main.xml 文件中,而是放在可以在此 activity 中调用的片段的 xml 文件中。 现在我已经改变了代码工作得很好。