无法删除动态生成的ImageView - Android

时间:2015-02-25 13:03:38

标签: android android-activity imageview

我的数据库表中有一个图像列表。加载活动时,我从文件中读取图像的路径并以编程方式创建图像视图实例,并将一个接一个地添加到我的线性布局容器中。然后对于每个imageView,单击时 - 我打开自定义图像编辑活动并进行编辑。编辑图像并将其保存在新文件中,然后删除数据库中的旧文件路径。然后它返回到图像视图活动并将新保存的图像添加到容器中。由于我没有对容器中的imageView进行控制,因此当它返回到view活动时,我无法删除imageView(编辑前的文件)。但是当我退出应用程序并再次加载它时,它会查看数据库并加载图像,一切看起来都很好。因为我删除了数据库中的条目,所以没有删除(编辑前的文件)图像的视图。

例如:(仅逻辑)

for all imagePath in ImagePath
    ImageView imageView(imagePath);
    linearLayoutContainer.addView(imageView);
    imageView.onClick() --> openEditActivity();

 Image Edit ActivityForResult: 
    String path = bundle.getString("newImagepath");
    ImageView imageView(path);
    linearLayoutContainer.addView(imageView);
    imageView.onClick() --> openEditActivity();

2 个答案:

答案 0 :(得分:0)

我不明白你是如何控制它们的。当您在第一时间创建它们时,添加一些包含布局中所有图像视图的类变量。然后,当用户编辑某个图像时,您只需在该容器中找到该图像视图并将其与新视图相关联。如果我理解你正确的问题,那就是其中一种方式。祝好运!

答案 1 :(得分:0)

做这样的事情:

用于ImagePath中的所有imagePath

ImageView imageView(imagePath);
imageView.setId(IMG_ID);//IMG_ID is unique for all images
linearLayoutContainer.addView(imageView);
imageView.onClick() --> openEditActivity();// onclick save CLK_IMG_ID=IMG_ID;

图片编辑ActivityForResult:

String path = bundle.getString("newImagepath");
ImageView imageView(path);
imageView.setId(IMG_ID);//IMG_ID is unique for all images
linearLayoutContainer.addView(imageView);
imageView.onClick() --> openEditActivity();// onclick save CLK_IMG_ID=IMG_ID;
linearLayoutContainer.removeView(linearLayoutContainer.findViewById(CLK_IMG_ID));