【问题标题】:How to add empty arraylist to a ListView? Attempt to invoke interface method 'int java.util.List.size()' on a null object reference [duplicate]如何将空数组列表添加到 ListView?尝试在空对象引用上调用接口方法“int java.util.List.size()”[重复]
【发布时间】:2019-03-02 06:08:52
【问题描述】:
@Override
protected void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    NoteTaking_Activity noteTaking_activity = new NoteTaking_Activity();

    arrayList = noteTaking_activity.getHeadlineArray();

    ListView listView = (ListView) findViewById(R.id.List_Of_notes);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, arrayList );

    listView.setAdapter( adapter );

执行上面显示的代码会导致错误消息

Attempt to invoke interface method 'int java.util.List.size()' on a null object reference.

数组列表一开始是空的,后来用户可以填充它。

我可以做些什么来解决这个错误?

【问题讨论】:

  • 你能告诉我们你的getHeadlineArray()函数吗?我敢打赌这将返回 null 而不是 ArrayList。
  • getHeadlineArray() 只是我的数组列表(标题数组)的吸气剂

标签: java android android-studio listview arraylist


【解决方案1】:

代码如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        NoteTaking_Activity noteTaking_activity = new NoteTaking_Activity();

        arrayList = noteTaking_activity.getHeadlineArray();

        ListView listView = (ListView) findViewById(R.id.List_Of_notes);
if(arrayList!=null){
        ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, arrayList );

        listView.setAdapter( adapter );
}

【讨论】:

  • 如果 OP 使用自定义适配器,则可以使用,但在这种情况下使用默认 ArrayAdapter
  • 如果它是默认适配器,那么您可以添加arrayList!=null 并显示错误消息No data found
  • 当我这样做时,应用程序将不再崩溃,但它不会执行读取onCreate方法中的其他语句。
  • 我已经更新了答案,检查一下。
  • @Hossein 如果它解决了您的问题,请您接受答案...
猜你喜欢
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 2020-08-25
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 2020-01-14
相关资源
最近更新 更多