2 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
好的,所以我現(xiàn)在知道了。您的資源中有一個(gè)數(shù)組列表,用于填充微調(diào)器。單擊該項(xiàng)目時(shí),代碼將獲取該項(xiàng)目在數(shù)組列表中的位置,并將其設(shè)置在共享首選項(xiàng)中,然后在 ActivityContent.java 中進(jìn)行訪問(wèn)。
在 ActivityContent.java 中,您從共享首選項(xiàng)中獲得的價(jià)值是項(xiàng)目在數(shù)組列表中的位置。
首先只是為了幫助您學(xué)習(xí),我將解釋您可以用它做什么。其次,我將解釋你打算做什么。
第一的
您在 arraylist 中有 item 的位置,因此您可以在 ActivityContent.java 類中使用它來(lái)做什么,請(qǐng)執(zhí)行此操作。
活動(dòng)內(nèi)容.java
String[] stringArray = getResources().getStringArray(R.array.country_arrays)
SharedPreferences sp = getSharedPreferences("My_Prefs", Activity.MODE_PRIVATE);
int sizeItemSelected= sp.getInt("VALUE", 24);
//if array contains strings if not just make this variable an Int
String sizeToSetTextViewSizeTo = stringArray[sizeItemSelected];
int tvSize = Integer.parseInt(sizeToSetTextViewSizeTo);
TextView titleTV = (TextView) findViewById(R.id.titleTextView);
titleTV.setTextSize(tvSize);
第二
您只需傳遞所選項(xiàng)目(您希望在活動(dòng)內(nèi)容中將 textview 設(shè)置為的大?。┒皇莻鬟f位置。
我認(rèn)為您最初打算使用代碼做什么
case 1:
SharedPreferences.Editor editor1 = sharedPref.edit();
editor1.putInt("VALUE", spinnerBackgroundChange.getSelectedItem());
editor1.commit();
break;
而不是這個(gè)
case 1:
SharedPreferences.Editor editor1 = sharedPref.edit();
editor1.putInt("VALUE", spinnerBackgroundChange.getSelectedItemPosition());
editor1.commit();
break;
唯一的事情是我從來(lái)沒(méi)有見(jiàn)過(guò)這樣的案例:在它自己的內(nèi)部
OnItemSelectedListender()
正如你所擁有的。但我不明白為什么這會(huì)影響代碼的第一個(gè)或第二個(gè)選項(xiàng)。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
更新了解決問(wèn)題的鏈接 抱歉沒(méi)有代碼。我回家后可以添加幾行,但最好的選擇是第 3 行,這是您需要研究和玩的東西。
您不能直接與來(lái)自另一個(gè)活動(dòng)的視圖交互。該活動(dòng)布局并未膨脹,因此您最終只會(huì)出現(xiàn)空指針異常。你必須間接地這樣做。有 3 種方法可以立即做到這一點(diǎn)。
SharedPreferences 像您一樣在您的微調(diào)器的共享首選項(xiàng)中設(shè)置一個(gè)值。但是在您的 activitycontent.java 中,您可以獲取共享首選項(xiàng)并查看某個(gè)值是否位于某個(gè)鍵值對(duì)中。如果是這樣,則在 activitycontent.java 中將文本大小設(shè)置為該值。如果它為 null 或空,那么它將是您為它設(shè)置的 contentdoa.xml 值的值。這將是最簡(jiǎn)單的,因?yàn)槟恍枰獮閿?shù)據(jù)庫(kù)編寫頂級(jí)代碼,也不必完全重新編寫整個(gè)應(yīng)用程序
活動(dòng)內(nèi)容.java
將此添加到 onCreate
SharedPreferences sp = getSharedPreferences("My_Prefs", Activity.MODE_PRIVATE);
int titleTextSize = sp.getInt("VALUE", 24);
TextView titleTV = (TextView) findViewById(R.id.titleTextView);
titleTV.setTextSize(titleTextSize);
以編程方式設(shè)置 TextViewSize
看看那篇文章并通讀答案和評(píng)論。您還可以嘗試的另一件事是將 Id 添加到線性布局,然后先引用它,然后再引用類似的內(nèi)容。
linearLayout.findViewById..... you know how the rest goes
創(chuàng)建一個(gè) SQLite 數(shù)據(jù)庫(kù)并將您的值存儲(chǔ)在其中。對(duì)于您的所有修改以及在每個(gè)活動(dòng)中可以更改的任何內(nèi)容,您都有該視圖活動(dòng)檢查是否設(shè)置了值,如果設(shè)置了視圖 textSize 為該值。我會(huì)推薦更多,因?yàn)槟阌泻芏嗫梢愿淖兊臇|西。
我更推薦的是研究并使用它進(jìn)行應(yīng)用程序設(shè)置。 應(yīng)用程序設(shè)置的默認(rèn) SharedPrefences
添加回答
舉報(bào)