Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在恢复活动时删除listview项_Android_Listview - Fatal编程技术网

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中删除项目”返回时,他们如何获得该职位。我理解错了吗?请阅读其他帖子上的评论。