第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從 Android 中的 XML 布局獲取視圖不起作用

從 Android 中的 XML 布局獲取視圖不起作用

慕無(wú)忌1623718 2021-12-01 19:25:42
我有一個(gè)關(guān)于如何從 Android 中的 XML 布局獲取視圖的問(wèn)題?我正在使用微調(diào)器,它現(xiàn)在可以保存選定的微調(diào)器值。我想從 content_doa.xml 布局中獲取 ID 為 titleTextView 的 TextView 視圖。我試過(guò)使用 LayoutInflater 但它不起作用,它還沒(méi)有產(chǎn)生任何效果。你能幫我解決問(wèn)題嗎?干得好:字體設(shè)置.javapublic class FontSettings extends AppCompatActivity {private Spinner spinner1, spinnerLatin;private SharedPreferences mMyPrefs;private SharedPreferences.Editor mMyEdit;@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.settings_font);    // toolbar    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);    setSupportActionBar(toolbar);    getSupportActionBar().setDisplayHomeAsUpEnabled(true); //this line shows back button    //Display data size teks arab in dropdown list spinner    final Spinner spinnerBackgroundChange = (Spinner)findViewById(R.id.spinner1);    final LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    final SharedPreferences sharedPref = getSharedPreferences("My_Prefs", 6);    ArrayAdapter<CharSequence> spinnerArrayAdapter = ArrayAdapter.createFromResource(this, R.array.country_arrays, android.R.layout.simple_spinner_item);    spinnerArrayAdapter.setDropDownViewResource(R.layout.textview_with_background);    spinnerBackgroundChange.setAdapter(spinnerArrayAdapter);    spinnerBackgroundChange.setSelection(sharedPref.getInt("VALUE", 6));
查看完整描述

2 回答

?
慕田峪4524236

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)。


查看完整回答
反對(duì) 回復(fù) 2021-12-01
?
aluckdog

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


查看完整回答
反對(duì) 回復(fù) 2021-12-01
  • 2 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)