我创建了一个图片库应用。
我的要求:当我点击某个活动(PhotosActivity.java)中的 buttoncut 时, buttonpaste 应该变得可见并且应该保持可见当我回到另一个活动(ImageGallery.java),以便我可以用它将图片移动到另一个文件夹。
发生了什么:当我点击 buttoncut (PhotosActivity.java)时, buttonpaste 变得可见但是当我回到任何其他活动(ImageGallery.java),它消失了。
我尝试了一些代码,但它没有用。我该如何解决?
PhotosActivity.java
Intent intent = new Intent(PhotosActivity.this, ImageGallery.class);
intent.putExtra(EXTRA_IS_CORRECT, true);
startActivity(intent);
ImageGallery.java
Intent startingIntent = getIntent();
boolean isCorrect = startingIntent.getBooleanExtra(PhotosActivity.EXTRA_IS_CORRECT, false);
if(isCorrect) {
final ImageButton buttonpaste = (ImageButton) findViewById(R.id.buttonpaste);
buttonpaste.setVisibility(View.VISIBLE);
}
答案 0 :(得分:0)
在您的主要活动中使用 startActivityForResult 而不是 startActivity 。这允许您将新活动中的值返回到主要活动。例如:
在PhotosActivity中
startActivityForResult(new Intent(PhotosActivity.this, ImageGallery.class), 3);
此处,数字3是您定义的数字,允许您稍后识别结果。
setResult(RESULT_OK); // or any result you want
结果将发送到MainActivity,您必须覆盖onActivityResult()才能获得结果。
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
if (requestCode == 3) // here you match the number you sent in startActivityForResult
if (resultcode == RESULT_OK)
// do something
}
答案 1 :(得分:0)
但是当我回到任何其他活动(ImageGallery.java)时,它就会消失
因为当你"回去"时你有不同的意图。如果要保持可见性,则应该使用let data = {a:5,b:6,c:7,d:8}
let price = 15
let urlParams = Object.entries(data)
.map(([key,value])=>`${key}=${value}`)
.push("price="+price)
.join("&")
。
例如
SharedPreferences