我想在活动中获取字符串时得到NULL

时间:2018-11-30 15:41:33

标签: java android android-intent

我正在尝试将一个字符串从一个活动传递给另一个活动,并且它返回NULL,该字符串具有我以前保存的图像的uri。

在活动一中,我具有一个保存图像并将字符串URI放入类的变量中的函数。接下来,我放入代码。

活动一

paintImage.buildDrawingCache();
Bitmap bitmap = paintImage.getDrawingCache();

// this method is the one above 
saveImage(bitmap);
presenter.getColorList();
startActivity(intent);

}

然后使用onCreate方法

Intent intent = getIntent();

// return null
String image = intent.getStringExtra("image_path");

第二项活动

<h5 href="/news/{{ last_post.pk }}">{{ last_post.title }}</h5>

3 个答案:

答案 0 :(得分:1)

在查看实施方案之前,您要触发活动ResultsActivity,并将image_path值添加到延迟的回调中。

MediaScannerConnection.scanFile(this, new String[]{file.toString()}, null,
        new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);
                image_path = uri.toString();
                intent.putExtra("image_path", image_path); // this will be called after some time

            }
        });


presenter.getColorList();
startActivity(intent);

在OnScanCompletedListener内部的intent.putExtra之后添加两行,并将其从onClickListener删除

答案 1 :(得分:1)

一旦在扫描仪结果之后保留图像文件,您可以执行以下操作来开始下一个活动。

Entry

在Activity2中,您可以执行以下操作。

from tkinter import *
root = Tk()
data_string = StringVar()
data_string.set("Hello World! But, Wait!!! You Can Select Me :)")
ent = Entry(root,textvariable=data_string,fg="black",bg="white",bd=0,state="readonly")
ent.pack()
root.mainloop()

答案 2 :(得分:0)

在您的主要活动中,如果您想在意图中传递字符串,则应该这样做

FirstActivity

 Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
 intent.putExtra("Keyname", image_path);
 startActivity(intent);

SecondActivity

onCreate ....

if(savedInstanceState == null)
            {
                Bundle extras = getIntent().getExtras();
                if (extras == null)
                {
                    //Extra bundle is null
                }else{
                    String image = extras.getString("Keyname");
                }