我有一些活动,在Acivity 1上我设置了一个变量active,这是真的。
活动1 =>活动2 =>回到活动1
using namespace std;
template <typename T>
class Vector {
private:
// |
// v
mutable long _ndx = 0;
T* _ptr; // storage for T objects
public:
Vector() { }
// The const version
// | |
// v v
T const& operator[](const long ndx) const { _ndx = ndx; return _ptr[ndx]; }
// The non-const version
T& operator[](const long ndx) { _ndx = ndx; return _ptr[ndx]; }
};
我得到了:
活动1:
active=true => active=false => active=false
此活动必须在后台运行。
活动2:
public boolean active = false;
onCreate() {active = true;}
Intent i = new Intent(Activity1.this, Activity2.class);
startActivity(i);
然后我调用方法public boolean active = false;
Intent intent = new Intent(Activity2.this, Activity1.class);
intent.putExtra("active", active);
但是当我回来时,活动1出现了,我获得了active = true:
onBackPressed();
和onResume()
我在这里:
onRestart()
当我尝试使用时 来自活动1的startActivityforResult()方法它没有移动到活动2,它仍然是真的。
可能是因为我在活动和内容更改方面都有主要布局。 怎么解决这个?
答案 0 :(得分:0)
This回答可以帮到你。简而言之:您可以使用SharedPreferences
保存任何变量,以便以后通过任何活动返回给他们。
SharedPreferences prefs = getSharedPreferences("preference_file_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("variable_key", variable);
editor.commit();
此外,即使使用startActivityForResult,您也可以传递一些数据。
答案 1 :(得分:0)
您可以使用共享首选项来存储上述答案中提到的变量,但我们也可以在不使用共享首选项的情况下执行此操作。