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

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

getActivity 方法我做錯(cuò)了什么?

getActivity 方法我做錯(cuò)了什么?

冉冉說(shuō) 2022-07-14 10:33:44
我一生都無(wú)法弄清楚 getActivity 方法的作用。我對(duì) android 編程比較陌生,我正在嘗試為我的應(yīng)用程序提供少量存儲(chǔ)空間。為此,我使用了 SharedPreferences。通常我不會(huì)“逐字”復(fù)制 Android 開(kāi)發(fā)人員上的內(nèi)容,但我即將放棄希望,因?yàn)槲沂裁匆沧霾涣?。我什至無(wú)法從網(wǎng)站上獲取代碼以正常工作這是我的應(yīng)用程序中的相關(guān)代碼。public String activeTab = "course_reg";private static final String DEBUG_TAG = "Gestures";public static final String MY_PREFS_NAME = "MyPrefsFile";Context context = getActivity();SharedPreferences sharedPref = context.getSharedPreferences(        MY_PREFS_NAME, Context.MODE_PRIVATE);Android Developers 的代碼如下。Context context = getActivity();SharedPreferences sharedPref = context.getSharedPreferences(    getString(R.string.preference_file_key), Context.MODE_PRIVATE);這是網(wǎng)站Android 開(kāi)發(fā)者頁(yè)面:保存鍵值數(shù)據(jù)每次我將 getActivity() 放入 Android Studio 時(shí),它都會(huì)說(shuō)它無(wú)法解析該方法。我不知道我應(yīng)該用它做什么,而且我在 Stack Overflow 上提出的所有其他問(wèn)題最終都沒(méi)有告訴我任何事情。getActivity 做了什么和/或我做錯(cuò)了什么。
查看完整描述

4 回答

?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

每次我將 getActivity() 放入 Android Studio 時(shí),它都會(huì)說(shuō)它無(wú)法解析該方法。


這是因?yàn)槟芸赡苁窃跀U(kuò)展 Activity 或 AppCompatActivity 的類中編寫代碼,并且兩者都沒(méi)有 getActivity() 方法。


getActivity() 方法存在于 Fragment 類中,它用于獲取對(duì)它所附加的 Activity 的引用。此方法可用于完成需要 Activity 上下文的工作。


您可以簡(jiǎn)單地使用 get SharedPreferences 而無(wú)需添加上下文。


@Override

protected void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   setContentView(R.layout.activity_main);

   SharedPreferences sp = getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE);

}


查看完整回答
反對(duì) 回復(fù) 2022-07-14
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

即使您將 google 的代碼替換為以下代碼,您的代碼也將起作用:


SharedPreferences sharedPref = this.getSharedPreferences(

getString(R.string.preference_file_key), Context.MODE_PRIVATE);

這是因?yàn)槟?Activity 擴(kuò)展了 Android Activity 類,如果您查看 Android Activity 類的文檔,您會(huì)看到 getSharedPreferences() 方法需要一個(gè) Context (Context.getSharedPreferences(..),它已經(jīng)被 Activity 擴(kuò)展了類(活動(dòng)擴(kuò)展上下文類)。嘗試用上面的代碼代替你擁有的任何東西,它應(yīng)該可以工作。


查看完整回答
反對(duì) 回復(fù) 2022-07-14
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

getActivity() 是屬于 Fragment 或 FragmentCompat 類的方法(檢查 Android API 中的這些類),它所做的只是獲取對(duì)片段附加到的活動(dòng)上下文的引用。


如果您只需要訪問(wèn) sharedpreferences,則需要調(diào)用 getContext() 或關(guān)鍵字“this”(如果您從 Activity 或 Service 中調(diào)用它)。


在您的代碼片段中,我猜所有這些都是您類中的屬性或常量,因此如果在 Activity 或服務(wù)中使用它,請(qǐng)將其更改為此。如果您在另一個(gè)非 android 對(duì)象中使用它,則必須從其他地方訪問(wèn) if(使用 dagger 并注入上下文,或者在應(yīng)用程序類中對(duì)其進(jìn)行一些靜態(tài)引用,但不推薦使用最后一個(gè)選項(xiàng)) .


public String activeTab = "course_reg";

private static final String DEBUG_TAG = "Gestures";

public static final String MY_PREFS_NAME = "MyPrefsFile";


Context context = getContext(); // or just Context context = this;

SharedPreferences sharedPref = context.getSharedPreferences(

        MY_PREFS_NAME, Context.MODE_PRIVATE);


查看完整回答
反對(duì) 回復(fù) 2022-07-14
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

我對(duì)android編程比較陌生


很可能您是編程新手,因?yàn)槟赡苤懒硪环N編程語(yǔ)言,但您來(lái)對(duì)地方了!


編碼:


Context context = getActivity();

SharedPreferences sharedPref = 

    context.getSharedPreferences(

        MY_PREFS_NAME, 

        Context.MODE_PRIVATE

    );

只是代碼的一部分。它不是你需要的重要部分,因?yàn)樗蟹浅鯇W(xué)者都知道它是什么。


在編程中(對(duì)我來(lái)說(shuō))學(xué)習(xí)搜索比學(xué)習(xí)熱學(xué)更有用!在這種情況下,您應(yīng)該搜索“getSharedPreferences 示例”。


您會(huì)看到,如果您在 Activity 類中,則不需要 getActivity。如果您在 Fragment 課程或其他任何課程中,則需要。取決于你在哪里。


例如這里它不是getActivity()


這里有一個(gè)getApplicationContext()


在這里你會(huì)找到一個(gè)如何使用它的教程


查看完整回答
反對(duì) 回復(fù) 2022-07-14
  • 4 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報(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)