2012-08-11 44 views
0

我有两个活动与ListView。这两个活动有单独的布局文件。首先有myListView01,其次有myListView02。如何更新listView的适配器? 我这样做:ListView更新

ListView list = (ListView)findViewById(R.id.myListView01); 
myAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01); 
list.setAdapter(myAdapter); 

我删除从array01一些项目,我需要没有这个元素来更新我的ListView。 但是这种解决方案ListActivity不起作用:

myAdapter.notifyDataSetChanged(); 

我的代码:

package ...; 
import ...; 
public class Class01 extends Activity 
{ 
    ArrayAdapter<String> mAdapter; 

    ArrayList<String> array01 = new ArrayList<String>(); 

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

     ListView list = (ListView)findViewById(R.id.my_list01); 
     mAdapter = new ArrayAdapter<String>(this, R.layout.item01, R.id.label, array01); 

     list.setAdapter(mAdapter); 
    } 
    public void onListItemClick (ListView parent, View v, int position, long id) 
    { 
     array01 = deleteElementByPosition(array01, position); 

     mAdapter.notifyDataSetChanged(); //does not work 
    } 
    public void deleteElementByPosition() 
    { 
     ... 
    } 
} 
+0

总是一个好主意是使用装载机 – Mike 2012-08-11 11:38:17

+0

什么?它与ListView有什么关系? – Leo 2012-08-11 12:10:46

+0

http://developer.android.com/guide/topics/ui/layout/listview.html – Mike 2012-08-11 12:58:34

回答

1

您没有设置onItemClickListenerListView。 从ListActivity扩展您的Class01Activity类没有onListItemClick()方法,所以它永远不会被调用。或者将setOnItemClickListener()设置为您的听众ListView

+0

谢谢,这真的是! – Leo 2012-08-12 10:16:24