我看到有很多关于notifyDataSetChanged()的问题。我看了很多,但没有一个解决方案适合我。
我正在使用ArrayList来设置我的列表,在更新了ArrayList之后,我运行了notifyDataSetChanged()。新列表将添加到上一个列表中。
让我们说第一个列表是a,b和新列表是a,b,c。我到底得到的是a,b,a,b,c。 每次使用新列表再次更新时都会发生这种情况。
我已经尝试过其他诸如invalidate(),adapter clear(),refreshDrawableState()等等,但没有任何效果。
提前谢谢。
这是简化的代码,注意到即使在我更改.xml文件中的代码后,更改MainActivity扩展Activity到ListActivity也会使程序崩溃。
public class MainActivity extends Activity
{
ArrayList<String> names = new ArrayList<String>();
ArrayAdapter arrayAdapter = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv1 = (ListView) findViewById(R.id.listview);
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, names);
lv1.setAdapter(arrayAdapter);
}
//code here to edit the ArrayList names.
public void onResume()
{
super.onResume(); // Always call the superclass method first
//the activity need to be updated everytime it resumes.
arrayAdapter.notifyDataSetChanged();
}
}
答案 0 :(得分:0)
好像你没有正确更新数组列表。更新后请尝试记录数组列表内容。