我想給用戶發送到我的主要Activicty他們登錄的第一次。在這裏,他們進入我保存到一個意向,並點擊一個按鈕轉到第二個活動的名稱。然後我在第二頁上顯示意圖名稱。檢查是否保存使用偏好存在
每次用戶登錄後,我都希望直接將它們發送到第二個活動。
我試圖通過發送用戶到第二個活動嘗試讀取名爲loggedInOnceAlready的變量,以查看它是否存在於SharedPreferences中,以及它是否設置爲true。如果它不存在,創建它並將其設置爲false,然後引發將用戶帶到主活動的意圖。如果它存在並設置爲false,則不執行任何操作並繼續執行第二個活動。
第一次登錄完成後,我的第二個活動,將其設置爲true,並將其存儲回我的SharedPreferences。
我覺得這應該工作,但我實現它
有問題這是我的清單首先:
<activity
android:name=".SecondActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_second" >
我的第二個活動:
public class SecondActivity extends AppCompatActivity {
String name;
TextView etWelcome;
String newName;
SharedPreferences sharedPrefences;
Boolean loggedInOnceAlready;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
sharedPrefences = PreferenceManager.getDefaultSharedPreferences(this);
loadSavedPrefernce();
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
name = bundle.getString("name");
etWelcome = (TextView)findViewById(R.id.tvWelcome);
etWelcome.setText("Welcome " + name);
}
private void loadSavedPrefernce() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (loggedInOnceAlready = null){
prefs.edit().putBoolean("loggedInOnceAlready", true).commit();
}else {
this.loggedInOnceAlready = false;
savePreference(loggedInOnceAlready, "loggedInOnceAlready");
Intent intent = new Intent(SecondActivity.this, MainActivity.class);
startActivity(intent);
}
}
private void savePreference(Boolean key, String value) {
SharedPreferences.Editor editor = sharedPrefences.edit();
editor.putBoolean("loggedInOnceAlready", false);
editor.commit();
}
而我的主要活動:
public class MainActivity extends AppCompatActivity {
SharedPreferences sharedPrefences;
Boolean loggedInOnceAlready;
String name;
EditText etName;
Button btnGo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
btnGo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
name = etName.getText().toString();
prefs.edit().putBoolean("loggedInOnceAlready", true);
// loggedInOnceAlready = true;
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("name", name);
startActivity(intent);
}
});
}
不應該將你在檢查MainActivity SP ..如果真的進入SecondAct或留在MainAct。並且您的默認活動應該是MainAct。 – Dhina
是啊,這應該工作,應該代碼工作,因爲我有一次我周圍改變它呢? – Coco12
應該..只要嘗試,並得到回來,如果你被擊中, – Dhina