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);