Android 导致应用程序崩溃的数字选择器
我有一个活动,展示了一系列餐厅菜肴。列表的每个视图都有一个与之关联的数字选择器。应用程序运行正常,但是当我启动活动以显示列表时,它会崩溃 这是我的班级档案Android 导致应用程序崩溃的数字选择器,android,nullpointerexception,numberpicker,Android,Nullpointerexception,Numberpicker,我有一个活动,展示了一系列餐厅菜肴。列表的每个视图都有一个与之关联的数字选择器。应用程序运行正常,但是当我启动活动以显示列表时,它会崩溃 这是我的班级档案 NumberPicker np; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setConte
NumberPicker np;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_starters);
createTestData();
adapter = new MenuItemArrayAdapter(this, starters);
this.setListAdapter(adapter);
np = (NumberPicker)findViewById(R.id.numpick);
np.setMinValue(0);
np.setMaxValue(99);
}
这是我的StartersActivity类的xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
有什么问题吗?该错误是空指针异常:
java.lang.RuntimeException:无法启动活动组件信息{com.example.waitron5/com.example.waitron5.startsActivity}:java.lang.NullPointerException
我有一种感觉,这与在加载列表之前尝试访问数字选择器有关,但它没有看到它。
列表的每个视图都有一个与之关联的数字选择器
上面的陈述使我相信NumberPickers控件应该在getView()
方法中的MenuItemArrayaAdapter
中引用和初始化,而不是在onCreate()
中现在的情况:
np = (NumberPicker)findViewById(R.id.numpick);
np.setMinValue(0);
np.setMaxValue(99);
列表的每个视图都有一个与其关联的数字选择器
上面的陈述使我相信NumberPickers控件应该在getView()
方法中的MenuItemArrayaAdapter
中引用和初始化,而不是在onCreate()
中现在的情况:
np = (NumberPicker)findViewById(R.id.numpick);
np.setMinValue(0);
np.setMaxValue(99);
要在
onCreate
方法中获取NumberPicker
,必须在主布局中定义它。因为它不是你得到的NPE
这取决于您如何使用
NumberPicker
在哪里取它。它必须特定于所讨论的列表项视图。要在onCreate
方法中获取NumberPicker
,必须在主布局中定义它。因为它不是你得到的NPE
这取决于您如何使用
NumberPicker
在哪里取它。它必须特定于所讨论的列表项视图。我说得对吗,您发布的布局文件不是R.layout.activity\u starters
?很抱歉,您是对的,布局文件是列表中行的布局。现在我将发布初学者布局。我是否理解正确,您发布的布局文件不是R.layout.activity\u starters
?很抱歉,您是对的,布局文件是列表中该行的布局。我现在发布初学者布局。每个列表行都有自己的NumberPicker
实例。在我看来,仅将一个实例放入活动字段并不正确。每个列表行都有自己的NumberPicker
实例。在我看来,仅将一个实例放入活动字段并不正确。
np = (NumberPicker)findViewById(R.id.numpick);
np.setMinValue(0);
np.setMaxValue(99);
np = (NumberPicker)findViewById(R.id.numpick);
np.setMinValue(0);
np.setMaxValue(99);