【发布时间】:2022-01-21 01:50:01
【问题描述】:
我正在尝试将存储在变量 my_var 中的值从一个活动发送到 Android 中的另一个活动。 SOV这里可能已经有很多类似的问题了,但我一直在自己尝试,到目前为止,还没有成功。对于我做错了什么,我将非常感谢您的帮助或提示?
我的(伪/示例)代码是这样的:
public class MyActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
public String my_var;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
My_method();
}
public void my_method() {
// This is a method that makes HTTP GET request and parse response to my_var
my_var = responseObject1.getX() + " " + responseObject1.getY()
}
// Then, at the bottom of MyActivity, I am creating an Intent to pass my_var to another activity to show it in TextView.
// I took this method from here[.][1]
public void rsa_key(String s){
Intent intent = new Intent(getBaseContext(), AnotherClass.class);
intent.putExtra("my_var", my_var);
startActivity(intent);
}
}
然后,在另一个活动中(在OnCreate),我试图像这样得到my_var:
// public String my_var in initialization
Intent intent = getIntent();
my_var = intent.getStringExtra("my_var");
应用程序编译,我没有收到任何错误,但在其他活动中将 my_var 值(XML 布局)放入 TextView.setText(my_var); 时,我看不到它。日志中也没有有用的提示。有人可以帮助我了解我做错了什么吗?或遗漏什么。
我也像这样尝试过SharedPreferences,但没有运气!
在第一次活动中:
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("varKey", my_var);
editor.commit();
第二次活动:
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
my_var = sharedPref.getString("varKey", my_var);
非常感谢您提供解决此问题的帮助/建议。非常感谢!
【问题讨论】:
-
您确定您使用的是正确的上下文吗?
-
我还使用了
this和FirstActivity.this。没用。上下文可能有什么问题? -
public String my_var;更改为public String my_var="xxxxxcccc";并重试。其余的看起来还可以。 -
当我调用
rsa_key方法时,页面跳转到另一个活动,这是不希望的。我只想在活动一运行时传递变量值(除非用户更改)。 -
@blackapps:试过但没有帮助。不确定,如果我应该调用
rsa_key,因为在第一页跳转到下一页(活动)。但是传递 my_var 不起作用。