我的應用程序需要連接到服務器,因此如果沒有設置首選項,它將不起作用。偏好設置使用SharedPreferences
。我在尋找的是一種將用戶引導至設置活動的模式。常見的是什麼?強制用戶設置首選項的模式
目前我正在檢查onCreate
和onResume
是否設置了所有首選項,否則我開始設置活動。問題是:
- 活動啓動兩次(通過
onCreate
和onResume
) - 用戶可能不知道,他/她可以回去的主要活動與背部硬件密鑰
任何建議來實現這個?
我的應用程序需要連接到服務器,因此如果沒有設置首選項,它將不起作用。偏好設置使用SharedPreferences
。我在尋找的是一種將用戶引導至設置活動的模式。常見的是什麼?強制用戶設置首選項的模式
目前我正在檢查onCreate
和onResume
是否設置了所有首選項,否則我開始設置活動。問題是:
onCreate
和onResume
)任何建議來實現這個?
創建LauncherActivity類,您可以進行哪些活動應該開始的決定 - PreferenceActivity,或MainActivity:檢查this建議也
public class LauncherActivity extends Activity {
SharedPreferences settings;
public void onCreate(Bundle savedInstanceState) {
settings = getSharedPreferences(PREFS_NAME, 0);
if (settings.getBoolean(PREFS_REG, false)) {
startActivity(new Intent(this, MAinActivity.class));
finish();
} else {
Intent enableBtIntent = new Intent(this, PreferenceActivity.class);
startActivityForResult(enableBtIntent, SETTINGS);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == SETTINGS) {
startActivity(new Intent(this, MAinActivity.class));
Editor editor = settings.edit();
editor.putBoolean(PREFS_REG, true);
editor.commit();
finish();
}
}
}
如果用戶「註冊」,然後將PREFS_REG到真正在onActivityResult()
onResume
永遠onCreate
後調用,所以你只需要進行檢查,並在onResume
方法啓動新的活動。
您可以顯示Toast
當SettingsActivity
負載,如:
Toast.makeText(context, "Press back to return.", Toast.LENGTH_SHORT).show();
你也不妨來顯示Toast
或AlertDialog
當SettingsActivity
開始告訴用戶,他們必須進入這些設置才能使用該應用程序。
我建議你用一個按鈕打開你的設置活動,顯示一個彈出對話框,其中包含一個消息,如「首選項設置」。 SharedPreferences的檢查和打開對話框可以在onResume中完成。
然後在用戶完成編輯設置後自動關閉設置活動(並按下保存按鈕)。
如果你使用這個方法,我不認爲你想'完成'LauncherActivity',那麼當用戶按下後,堆棧中將沒有活動,它將返回到先前的應用程序。另外,如果刪除'finish()',則需要將所有這些放在'onResume'方法中,否則您只會看到空白的活動。就我個人而言,我認爲從MainActivity的'onResume'調用'startActivity'是更好的解決方案,這正是OP正在做的事情。 –
你是對的我已經添加了onActivityResult()方法 – HiB
這是插入另一個活動真的不錯的主意嗎?從脫鉤的角度來看,這似乎是合理的,但我可以想象它使方式複雜化,例如,當偏好再次失效時。 – Erandir