gpt4 book ai didi

java - 如何在不同的 Activity 上使用 GridView 的相同适配器

转载 作者:行者123 更新时间:2023-12-02 03:33:27 26 4
gpt4 key购买 nike

假设我有两个 Activity , Activity A 和 Activity B。

Activity A 使用适配器 Z 显示图像列表。

当用户点击 Activity A 中的任何图像时,他们将被带到 Activity B 以显示完整图像。我使用 Intent 将图像路径和网格位置传递给 Activity。

现在在 Activity B 中,我放置了一个删除按钮,该按钮应该从 gridview 适配器中删除图像路径。

问题是:如何访问 Activity B 中的 Activity A 适配器以调用适配器中的删除(位置)方法。

所以我可以在Activity A的onResume中调用notifyDataSetChanged来更新gridview图像。

Activity 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);

Activity 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);
}

最佳答案

使用startActivityForResult .

Intent fullImageActivity = new Intent(getApplicationContext(), ActivityB.class);
fullImageActivity.putExtra("position", position);
fullImageActivity.putExtra("path", mediaPath);

startActivityForResult(fullImageActivity, 2);

检查Activity B中的特定位置是否被删除。在这里我重写了 onBackPressed() (例如)方法

public void onBackPressed(){

super.onBackPressed()

Intent intent=new Intent();
intent.putExtra("isdeleted",true);
intent.putExtra("pos",position);
setResult(2,intent);
finish();
}

ActivityAonActivityResult中处理它。

 @Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==2)
{
if(data.getBooleanExtra("isdeleted")){
remove from position array and notify dataset change. // pos = data.getIntExtra("pos")
}
}
}

抱歉,打字错误。

关于java - 如何在不同的 Activity 上使用 GridView 的相同适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com