0

我有两个使用 ListView 的活动。这两个活动有单独的布局文件。首先有 myListView01,其次有 myListView02。如何更新 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()
    {
        ...
    }
}
4

1 回答 1

1

您还没有您的ListView. 扩展您Class01ListActivity. Activity类没有onListItemClick()方法,所以它永远不会被调用。或者使用setOnItemClickListener()为您的ListView.

于 2012-08-12T10:07:47.647 回答