为什么adapter.add会崩溃?

时间:2012-01-05 20:48:23

标签: java android adapter

我有一个列表视图的适配器,每次到达.add行时,它都会崩溃,我已经设置了一个arrat适配器和一个文本视图以及所有内容,为什么会崩溃呢?

2 个答案:

答案 0 :(得分:2)

如果不提供代码,就很难检查出错的地方。

以下链接为您提供了有关设置列表视图http://developer.android.com/resources/tutorials/views/hello-listview.html的教程,但它实现了ListActivity。

如果您只实现Activity,您的代码应该是那样的

package my.test;

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MyActivity extends Activity {
    ListView lvList; // the listview
    ArrayAdapter<String> adapter; // the adapter responsible for the rendering
    ArrayList<String> listItems = new ArrayList<String>(); // the list of items
    String myString = "Text to add"; // the text to add

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lvList = (ListView) findViewById(R.id.mylistview);
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, listItems);
        lvList.setAdapter(adapter);

            //add the text to the list of items
        listItems.add(myString);

            //tell the adapter that the list have change and the
            //rendering should be refreshed
        adapter.notifyDataSetChanged();
    }
}

实际上我给出的例子是String,但你可以为Integer或你创建的任何类做。

答案 1 :(得分:2)

我有类似你的问题,使用较旧的设备加载更多数据,使用较旧的Android版本......我首先添加了

  

objAdapter.addAll(loadMoreArray);

并致电

  

objAdapter.notifyDataSetChanged();

但这不是一个好的解决方案,如果您在objectAdapter中添加新的数据列表,则旧设备会崩溃应用程序。但解决方案是将新数据加载到新列表中,并在旧列表中添加新的数据列表

  

arrayListOfData.addAll(newArrayListOfData);

并致电

  

objAdapter.notifyDataSetChanged();

希望我帮助......