所以我有这个“中间人”非活动类,我希望从活动类中获取字符串路径。然后,从我的非活动类发送该字符串路径到另一个活动?
活动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();
}
所以这个方法由于某种原因不起作用,我想我必须使用一些如何使用上下文,但我不确定如何使用它们,如果有人可以帮助示例或修改我在下面做的示例代码太棒了!
答案 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;
祝你好运