I have in PreferenceScreen
one "button" and after click on it i need to change Boolean
value of sharedPreference prefLogin
on true, and that value can skip my skipping if in LoginActivity
. But it is not working ! Intent yes but, alltimes redirect me from loginactivity to main, reason ? "intent to main" because that if in onCreate
in loginActivity
How can i fix it ! And with sharedPreference startLogin
can stay in activity only for that time
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;
}
}
and 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 - here in onCreate
i must skip that if after click on login in settings
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();
}
}