【发布时间】:2016-06-13 16:56:01
【问题描述】:
假设我有两个活动,活动 A 和活动 B。
Activity A 使用 Adapter Z 显示图像列表。
当用户点击活动 A 中的任何图像时,他们将被带到活动 B 以显示完整图像。我正在使用 Intent 将图像路径和网格位置传递给 Activity。
现在在活动 B 中,我放置了一个删除按钮,该按钮应该从 gridview 适配器中删除图像路径。
问题是: 如何访问活动 B 中的活动 A 适配器以调用适配器中的 remove(position) 方法。
所以我可以在 Activity A 的 onResume 中调用 notifyDataSetChanged 来更新 gridview 图像。
活动 A
MyGridView = (GridView) findViewById(R.id.gridview);
adapter = new MyAdapter(this);
MyGridView .setAdapter(adapter );
Intent fullImageActivity = new Intent(getApplicationContext(), ActivityB.class);
fullImageActivity.putExtra("position", position);
fullImageActivity.putExtra("path", mediaPath);
startActivity(fullImageActivity);
活动 B
Intent i = getIntent();
// I'm getting position and path from setOnItemClickListener
position = i.getExtras().getInt("position");
path = i.getExtras().getString("path");
// I want to remove path from my adapter after clicking delete button in Activity B
适配器
public ArrayList<String> images;
public void remove(int position){
images.remove(position);
}
【问题讨论】:
-
使用静态变量或共享首选项保存您在活动 B 中的位置。并在 Activity A 中从 arraylist 中删除位置并通知它
-
是的,我知道这样做。但我想从 Activity B 本身中删除位置。
-
你在Activity B中有gridview吗?
-
不行,Activity B只有一个ImageView来显示Activity A点击的图片