为所有活动创建一个ListAdapter?

时间:2014-12-09 10:15:19

标签: android android-listview

我对ListAdapter有疑问。当我创建ListAdapter时,我需要始终使用new重新编写,或者我应该只创建一次。

例如。

private void addListAdapter(){
   MyAdapter myAdapter = new MyAdapter(getContext(), new ArrayList<String>();   
   listView.setAdapter(myAdapter);
}

在这个例子中,我总是调用addListAdapter()来重新编写我的适配器。我想知道我是否应该只创建一次myAdapter并且可以在所有活动中使用。

例如

private MyAdapter myAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) { 
    myAdapter = new MyAdapter(getContext(), new ArrayList<String>(); 
    listView.setAdapter(myAdapter);
} 

/** change list in MyAdapter */
private void changeListAdapter(){
   List<String> list = new ArrayList<String>();
   list.add("Name");
   list.add("LastName");
   myAdapter.changeList(list);
   myAdapter.notifyDataSetChanged();
}

在J2SE / Swing中,我在TableModel中更改了List之后,在我的应用程序中创建了一个唯一的TableModel。使用ListAdapter它可以工作吗?

1 个答案:

答案 0 :(得分:2)

每当您赢得任何控件时都会创建一个新实例,因为您将始终引用不同的MyAdapter实例,并且也无用。