Android 如何在恢复活动时删除listview项
我有一个Android 如何在恢复活动时删除listview项,android,listview,Android,Listview,我有一个main活动,带有ViewPager。在它里面我有两个选项卡,其中有两个片段。每个片段都有一个列表视图。单击列表视图项,将打开一个详细信息活动 当我从DetailsActivity中删除项并返回到main活动时,如何从listview中删除项,以删除列表项表单适配器 arrayList.remove([INDEX]); 要刷新listview arrayAdapter.notifyDataSetChanged(); 当您从DetailsActivity返回时,可能需要从列表中删除该项
main活动
,带有ViewPager
。在它里面我有两个选项卡
,其中有两个片段
。每个片段
都有一个列表视图
。单击列表视图
项,将打开一个详细信息活动
当我从
DetailsActivity
中删除项
并返回到main活动
时,如何从listview
中删除项
,以删除列表项表单适配器
arrayList.remove([INDEX]);
要刷新listview
arrayAdapter.notifyDataSetChanged();
当您从
DetailsActivity
返回时,可能需要从列表中删除该项目。我想你在某处有一个适配器,上面有所有的项目
public void deleteItem(int position){
arrayList.remove(position);
notifyDataSetChanged();
}
这将在适配器内部执行。覆盖OnResume()并通知适配器
@Override
public void onResume() {
super.onResume();
doDeleteFromList();
arrayAdapter.notifyDataSetChanged();
}
当您从main活动的DetailsActivity
OnResume()
返回时,将调用main活动的。String[]values=new String[]{“Android列表视图”,
String[] values = new String[] { "Android List View",
"Adapter implementation",
"Simple List View In Android",
"Create List View Android",
"Android Example",
"List View Source Code",
"List View Array Adapter",
"Android Example List View"
};
final ListView listView = (ListView)findViewById(R.id.listView);
ArrayList<String> lst = new ArrayList<String>(Arrays.asList(values)); //to prevent "java.lang.UnsupportedOperationException"
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lst);
listView.setAdapter(adapter);
///..
//delete item from listView:
String itemValue = (String) listView.getItemAtPosition(position);
adapter.remove(itemValue);
“适配器实现”,
“Android中的简单列表视图”,
“创建列表视图”,
“Android示例”,
“列表查看源代码”,
“列表视图阵列适配器”,
“Android示例列表视图”
};
最终ListView ListView=(ListView)findViewById(R.id.ListView);
ArrayList lst=新的ArrayList(Arrays.asList(values))//防止“java.lang.UnsupportedOperationException”
adapter=new ArrayAdapter(这是android.R.layout.simple_list_item_1,lst);
setAdapter(适配器);
///..
//从listView中删除项目:
String itemValue=(String)listView.getItemAtPosition(position);
适配器。删除(itemValue);
我在我的片段
中添加了下面提到的两种方法
@Override
public void setUserVisibleHint(boolean visible){
super.setUserVisibleHint(visible);
if (visible && isResumed()){
//this allows onResume() to be called only when returning from detailsActivity.
onResume();
}
}
setUserVisibleHint
方法将在用户每次看到片段时调用
@Override
public void onResume()
{
super.onResume();
if (!getUserVisibleHint())
{
return;
}
//this code will run only when user is returning from detailsActivity
}
这里,只有从detailsActivity
返回时,才会运行onResume()方法中的代码。所以我在这里插入了删除列表项的代码。listview数据来自哪里?数据库数据来自外部URL(json),listview适配器位于viewpager片段内。如何从片段的MainActivityPlease override onResume()访问该适配器。请仔细阅读问题。适配器位于viewpager片段中。我如何知道要删除的索引号?我如何从片段内部知道活动何时恢复?这不是问题所在。没有它想要执行的ListView元素的片段。因此,我为这一点开发了一个简单的例子。不过,不是问题所问的。当他们从另一个活动“如何从listview中删除项目”返回时,他们如何获得该职位。我理解错了吗?请阅读其他帖子上的评论。