Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示ListView时获取NullPointerException_Android_Android Listview_Listview Adapter - Fatal编程技术网

Android 显示ListView时获取NullPointerException

Android 显示ListView时获取NullPointerException,android,android-listview,listview-adapter,Android,Android Listview,Listview Adapter,我试图制作一个提醒注释的列表视图。但当我试图保存它并在ListView中显示它时,应用程序会因此错误/异常而崩溃saveNote方法在按下save按钮时被调用。感谢您的帮助 public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch(id) { case R.id.add_reminder : { et = (EditTex

我试图制作一个提醒注释的列表视图。但当我试图保存它并在ListView中显示它时,应用程序会因此错误/异常而崩溃
saveNote
方法在按下save按钮时被调用。感谢您的帮助

    public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    switch(id) {
      case R.id.add_reminder : {
          et = (EditText)findViewById(R.id.new_note);
          et.setVisibility(View.VISIBLE);
          note = et.getText().toString();
          i++;
          Button save_button = (Button) findViewById(R.id.button_save);
          save_button.setVisibility(View.VISIBLE);
      }
      default : return super.onOptionsItemSelected(item);
  }

}
public void saveNote(View view) {

    String[] notes = new String[20];
    notes[i] = note;
    listView = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,notes);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            //Clicked item index
            int itemPosition = position;
            //Clicked item value
            String itemNote = (String) listView.getItemAtPosition(position);
            //Alert
            Toast.makeText(getApplicationContext(), "Position :" + itemPosition + "  ListItem : " + itemNote, Toast.LENGTH_LONG).show();
        }
    });

调试并找出在布局上找不到ListView的原因(为空)。

问题在于以下行:

listView = (ListView) findViewById(R.id.list);
请检查您的xml是否有id为
'list'
的ListView小部件。 如果id在XML中不同,则会导致空对象引用。当你打电话的时候

listView.setAdapter(adapter)

它将给出一个空指针异常。

我从日志中发现的主要原因是ListView为空。请再次检查listView是否为空?还有什么是注释??
我认为每次单击Save按钮都可以找到ListView和设置适配器。在我看来,这不是一个好办法。您应该在第一次设置适配器,下次只需更新适配器数据并调用notifyDataSetChanged()

注释[i]=注释是什么意思行?数组中只有第i个元素不为Null,其余元素为Null。我检查了这里发布的一些相关问题。但是它有点不同,我想不出解决办法。
notes[I]=note这意味着什么?什么是
i
note
。每次用户输入notes时动态分配它是否会有问题?Rest将为空。@Rustam
i
设置为整数<代码>注释
字符串
listView.setAdapter(adapter)