0
나는 PreferenceScreen
하나의 "버튼"을 가지고 있고 그것을 클릭 한 후에 Boolean
의 값을 sharedPreference prefLogin
으로 변경해야하며 그 값은 LoginActivity
인 경우 건너 뛸 수 있습니다. 하지만 작동하지 않습니다! 의도는 네,하지만 alltimes는 loginactivity에서 main, reason으로 리디렉션합니까? "main to intent"는 그럴 경우 해당 onCreate
loginActivity
안드로이드 - sharedPreference가 변경되지 않았습니다
어떻게 해결할 수 있습니까? 그리고 sharedPreference startLogin
만 그 시간
public class NastaveniaActivity extends PreferenceActivity implements Preference.OnPreferenceClickListener
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
findPreference("prefLogin").setOnPreferenceClickListener(this);
}
public boolean onPreferenceClick(Preference preference)
{
String key = preference.getKey();
if(key.equals("prefLogin"))
{
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putBoolean("preflogin", true);
editor.commit();
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
return true;
}
return false;
}
}
및 Settings.XML의를위한 활동에 머물 수
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/pref_login">
<PreferenceScreen
android:title="@string/pref_prihlasovanie"
android:summary="@string/pref_prihlasovanie_summary"
android:key="prefLogin" >
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_update_setting" >
<CheckBoxPreference
android:defaultValue="true"
android:key="prefSendReport"
android:summary="@string/pref_send_report_summary"
android:title="@string/pref_send_report" />
</PreferenceCategory>
</PreferenceScreen>
LoginActivity - 여기 onCreate
에서 나는 건너 뛰어야하는 경우 설정
public class LoginActivity extends Activity
{
String username;
EditText e_username;
Boolean login;
Boolean startLogin;
String vstupneHeslo;
String vstupnaPrezivka;
private NastaveniaActivity nastavenia;
private DatabaseOp mDbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
showUserSettings();
mDbHelper = new DatabaseOp(this);
mDbHelper.open();
if (username!="")
{
if (!startLogin)
{
if (!login)
loginStart();
}
}
}
.......
private void showUserSettings()
{
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
username = sharedPrefs.getString("prefUsername", "NULL");
login = sharedPrefs.getBoolean("prefSendReport", false);
startLogin = sharedPrefs.getBoolean("prefLogin", false);
if (username.equals("NULL"))
username = "";
e_username = (EditText)findViewById(R.id.login);
e_username.setText(username);
}
public void loginStart()
{
if (startLogin)
{
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = sharedPrefs.edit();
editor.putBoolean("prefLogin", false);
editor.commit();
}
startActivity(username);
LoginActivity.this.finish();
}
}
여전히 작동하지 않습니다. – Tomino
답을 편집했습니다. 다시 시도하십시오 .. –
변경된 사항 없음 ... 문제는 환경 설정을 설정하는 것이 아니라 환경 설정 "버튼"을 클릭하는 것으로 확인됩니다 :/ – Tomino