0

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();
}
}
Tomino
  • 113
  • 2
  • 14

1 Answers1

0

Try this..

if(key.equals("prefLogin"))
{
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("preflogin", true);
editor.commit();
}
Akshay Abhyankar
  • 599
  • 1
  • 4
  • 11