Dro*_*man 11 android android-arrayadapter android-listview
我在尝试从长按一下从列表视图中删除项目时遇到了一些麻烦.以下是代码:
public class MListViewActivity extends ListActivity {
private ListView lv;
private String[] some_data = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
some_data = getResources().getStringArray(R.array.mdata);
// Bind resources Array to ListAdapter
ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this,
R.layout.list_item, R.id.label, some_data);
this.setListAdapter(myAdapter);
lv = getListView();
lv.setDividerHeight(3);
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int arg2, long arg3) {
// Can't manage to remove an item here
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏
TNR*_*TNR 15
您不应该使用Arrays,您应该使用ArrayList删除和添加项目Listview.
声明数组大小后,您可以修改特定索引中的数据,但不能删除项目或添加项目.
所以拿一个ArrayList,就在你长按ListView Item时,只需调用Arraylist的remove方法并通知更改的数据集.
例:
ArrayList<String> al = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
在你的longclick里面写下面的代码来删除项目.
al.remove(arg2);//where arg2 is position of item you click
myAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
Geo*_*zov 11
尝试
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long arg3) {
myAdapter.remove(some_data[position]);
myAdapter.notifyDataSetChanged();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34189 次 |
| 最近记录: |