如何将信息传递给非活动类?

时间:2015-08-11 22:43:38

标签: android android-intent android-activity android-context

所以我有这个“中间人”非活动类,我希望从活动类中获取字符串路径。然后,从我的非活动类发送该字符串路径到另一个活动?

活动A

@Override
public void onCreate(Bundle savedInstanceState)
{
     Intent imageToFactory = new Intent(this,NonActivity.class);
     imageToFactory.putExtra("yourImage", user_image_path);//I already set user_image path
}

NonActivity

public class NonActivity

{
    private Intent grabImagePath = new Intent();
    private String grabImagePathString = getIntent.getStringExtra("yourImage");//this obviously gives an error but for the example

    public String grabUserImage()
    {
        return grabImagePathString;
    }
}

活动B

@Override
public void onCreate(Bundle savedInstanceState)
{
     NonActivity nonActivity;
     String example = nonActivity.grabUserImage();
}

所以这个方法由于某种原因不起作用,我想我必须使用一些如何使用上下文,但我不确定如何使用它们,如果有人可以帮助示例或修改我在下面做的示例代码太棒了!

2 个答案:

答案 0 :(得分:1)

你可以构建一个可以作为消息桥的静态变量,首先需要创建一个类并将其命名为你喜欢的任何东西,在我的例子中,我将示例类命名为Conn,然后添加一个静态HashMap。 / p>

public class Conn {

    public static HashMap<String,String> storage = new HashMap<>();

}

在您的示例中使用此类:

活动A

@Override
public void onCreate(Bundle savedInstanceState){

    Conn.storage.put("yourImage",user_image_path_in_string);

}

活动B

@Override
public void onCreate(Bundle savedInstanceState)
{

     String example = Conn.storage.get("yourImage");

}

答案 1 :(得分:0)

如果你想使用第三类(这里是NonActivity.class)出于某些原因,就这样做:

像这样创建全局类:

包助手;

public class Globals {

private static final Globals instance = new Globals();
private GlobalVariables globalVariables = new GlobalVariables();

private Globals() {
}

public static Globals getInstance() {
    return instance;
}

public GlobalVariables getValue() {
    return globalVariables;
}

}

和全局变量类如下:

public class GlobalVariables {
public String grabImagePathString;
}

现在在活动A ::

Globals.getInstance().getValue(). grabImagePathString = "something......";

和活动B ::

String gtabImagePathString = Globals.getInstance().getValue(). grabImagePathString;

祝你好运

相关问题