无法通过其他活动

时间:2018-01-05 05:15:43

标签: java android android-intent

我创建了一个图片库应用。

我的要求:当我点击某个活动(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);
}

2 个答案:

答案 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