問題摘要:?當(dāng)我通過打開任務(wù)窗口并滑動關(guān)閉來強制關(guān)閉應(yīng)用程序時,我的 if/else 語句無法正常工作。我將名稱選擇活動作為默認啟動器活動。僅當(dāng)沒有共享首選項時才會彈出名稱選擇活動,這意味著用戶尚未從微調(diào)器中選擇名稱。但即使用戶選擇了一個名稱并將其存儲在共享首選項中,當(dāng)我強制關(guān)閉應(yīng)用程序時,我仍然會返回到名稱選擇活動我所嘗試過的我嘗試過if (stringNamePackage.equals(""))并且并且并且if (stringNamePackage == "")起初?我以為這是因為我的共享首選項沒有正確保存名稱,但事實并非如此,當(dāng)我強制關(guān)閉它時,名稱仍然正確顯示。但是,當(dāng)我嘗試添加 if/else 語句時,它總是只會將我發(fā)送回名稱選擇活動,無論我是否在共享首選項中保存了名稱。我花了 4 個小時試圖讓它發(fā)揮作用,但我卻束手無策。我還花了幾個小時查看有關(guān)如何保存和檢索共享首選項數(shù)據(jù)的不同堆棧文章。我甚至嘗試了如何檢查 SharedPreferences 字符串是否為空或 null *android,但它仍然無法正常工作。if (NAME.equals(""))if (NAME == "")名稱選擇活動public class NameSelection extends AppCompatActivity implements AdapterView.OnItemSelectedListener {? ? Spinner nameSpinner;? ? String stringNamePackage;? ? Button bSaveSelection;? ? Context context;? ? public ArrayAdapter<CharSequence> adapter;? ? public static String SHARED_PREFS = "sharedPrefs";? ? public static String NAME = "name";? ? @Override? ? protected void onCreate(Bundle savedInstanceState) {? ? ? ? super.onCreate(savedInstanceState);? ? ? ? setContentView(R.layout.activity_name_selection);? ? ? ? context = this;? ? ? ? nameSpinner = findViewById(R.id.horizonNameSpinner);? ? ? ? stringNamePackage = "";? ? ? ? //Create the list to populate the spinner? ? ? ? List<String> nameList = new ArrayList<>();? ? ? ? nameList.add("01");? ? ? ? nameList.add("02");? ? ? ? nameList.add("03");? ? ? ? //Array Adapter for creating list? ? ? ? //adapter = ArrayAdapter.createFromResource(this, R.array., android.R.layout.simple_spinner_item);? ? ? ? adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, nameList);? ? ? ? adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);? ? ? ? nameSpinner.setAdapter(adapter);? ? ? ? nameSpinner.setOnItemSelectedListener(this);主要活動 此活動案例的目的是,當(dāng)用戶點擊“測試”按鈕時將其發(fā)送回名稱選擇屏幕,這將刪除共享首選項,從而觸發(fā) if/else 語句并讓用戶選擇名稱。這是我在主活動中獲取和設(shè)置名稱的方法:在 onCreate 中
1 回答

繁花如伊
TA貢獻2012條經(jīng)驗 獲得超12個贊
要獲取數(shù)據(jù)并將數(shù)據(jù)存儲給您,SharedPreferences
您可以使用以下命令:
SharedPreferences sharedPreferences = getSharedPreferences(getPackageName(), Context.MODE_PRIVATE);
PreferenceManager.getDefaultSharedPreferences(context)
用于構(gòu)建“設(shè)置”屏幕或類似屏幕,第一個使用它來存儲/檢索不一定綁定到 UI 的任意數(shù)據(jù)。
更重要的是,如果您想組織您的內(nèi)容,SharedPreferences
您可以附加getPackageName()
不同的鍵,例如:
getSharedPreferences(getPackageName() + ".booleans", Context.MODE_PRIVATE); getSharedPreferences(getPackageName() + ".flags", Context.MODE_PRIVATE); getSharedPreferences(getPackageName() + ".keys", Context.MODE_PRIVATE);
它們中的每一個都是存儲共享首選項的不同文件,您可以省略前面的點.
,但為了命名一致性,最好保留它,實際上不需要額外的鍵,但如果您有某種強迫癥,這可能會“放松”;-)。
然后您可以使用 Android Studio 的設(shè)備資源管理器瀏覽共享首選項,它們位于“data/data/ your.package.name /shared_prefs”下
添加回答
舉報
0/150
提交
取消