即使在另一个 activity 中提交 sharedpreferences 实例后也没有获得第二名 activity
Not getting second activity even after Commiting shared preferences instance in Another activity
在 MainActivity 我测试了 App 是否第一次启动。
如果是,则开始 Activity OneTime else SecondActivity.
public static final String MyPreferences = "MyPrefs";
public static final String Country_Name = "countryKey";
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sharedPreferences =
getSharedPreferences(MyPreferences, Context.MODE_PRIVATE);
if(sharedPreferences.getBoolean("My_Pref",true))
{
Intent intent = new Intent(this,OneTime.class);
startActivity(intent);
}
else {
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
}
}
在 OneTime activity 中,我有一个简单的表单,例如输入 CountryName,然后我更改了 My_Pref 实例,如下所示。
SharedPreferences sharedPreferences;
TextView country;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.one_time);
country = (TextView) findViewById(R.id.editText);
}
public void savepref(View view) {
sharedPreferences = PreferenceManager.
getDefaultSharedPreferences(getBaseContext());
String text1 = country.getText().toString();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("countryKey",text1);
editor.putBoolean("My_Pref",false);
editor.apply();
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
}
但即使在此之后当应用程序再次启动时,它也会转到 OneTime activity 而不是 SecondActivity。我搜索了这样的问题,但我没能解决这个问题。
我是共享偏好概念的新手。谢谢。
您没有使用相同的共享首选项。
在一个地方你使用这个
getSharedPreferences(MyPreferences, Context.MODE_PRIVATE);
然后在另一个地方你使用这个
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
二选一并坚持下去
在 MainActivity 我测试了 App 是否第一次启动。 如果是,则开始 Activity OneTime else SecondActivity.
public static final String MyPreferences = "MyPrefs";
public static final String Country_Name = "countryKey";
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sharedPreferences =
getSharedPreferences(MyPreferences, Context.MODE_PRIVATE);
if(sharedPreferences.getBoolean("My_Pref",true))
{
Intent intent = new Intent(this,OneTime.class);
startActivity(intent);
}
else {
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
}
}
在 OneTime activity 中,我有一个简单的表单,例如输入 CountryName,然后我更改了 My_Pref 实例,如下所示。
SharedPreferences sharedPreferences;
TextView country;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.one_time);
country = (TextView) findViewById(R.id.editText);
}
public void savepref(View view) {
sharedPreferences = PreferenceManager.
getDefaultSharedPreferences(getBaseContext());
String text1 = country.getText().toString();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("countryKey",text1);
editor.putBoolean("My_Pref",false);
editor.apply();
Intent intent = new Intent(this,SecondActivity.class);
startActivity(intent);
}
但即使在此之后当应用程序再次启动时,它也会转到 OneTime activity 而不是 SecondActivity。我搜索了这样的问题,但我没能解决这个问题。 我是共享偏好概念的新手。谢谢。
您没有使用相同的共享首选项。
在一个地方你使用这个
getSharedPreferences(MyPreferences, Context.MODE_PRIVATE);
然后在另一个地方你使用这个
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
二选一并坚持下去