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

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

如何修復(fù)空片段?

如何修復(fù)空片段?

慕的地8271018 2024-01-17 20:54:17
我是 Android 開(kāi)發(fā)新手,正在嘗試創(chuàng)建自己的應(yīng)用程序。它應(yīng)該使用 YouTube 數(shù)據(jù) API 顯示特定的 YouTube 頻道。我從 Android Studio 中的標(biāo)準(zhǔn)底部導(dǎo)航模板開(kāi)始,并使用 Github 上的以下項(xiàng)目來(lái)獲取一些啟動(dòng)幫助。https://github.com/stressGC/Remake-YouTube-Android我必須更改一些內(nèi)容,例如代碼中已棄用的 http 調(diào)用,以使其與新的 Android APK 一起運(yùn)行。從我的角度來(lái)看,一切似乎都很好:我可以看到 API 內(nèi)容看起來(lái)不錯(cuò),并且每個(gè)標(biāo)題/描述/發(fā)布日期都放置在相應(yīng)的變量中。日志中也沒(méi)有錯(cuò)誤消息。當(dāng)我啟動(dòng)模擬器時(shí),應(yīng)用程序運(yùn)行良好。但是當(dāng)我切換到“儀表板”片段(放置代碼的地方)時(shí),它是空的。
查看完整描述

1 回答

?
達(dá)令說(shuō)

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

你的內(nèi)部RequestYouTubeAPI ASyncTask有這個(gè)錯(cuò)誤代碼:


        } catch (IOException e) {

            e.printStackTrace();

            return null;

        }

然后onPostExecute你有以下內(nèi)容:


    @Override

    protected void onPostExecute(String response) {

        super.onPostExecute(response);

        if(response != null){

            try {

                JSONObject jsonObject = new JSONObject(response);

                Log.e("response", jsonObject.toString());

                mListData = parseVideoListFromResponse(jsonObject);

                initList(mListData);

                //adapter.notifyDataSetChanged();

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }

    }

因此,如果您收到錯(cuò)誤,return null并且onPostExecute收到響應(yīng), null則不會(huì)執(zhí)行任何操作。


所以這個(gè)地方可能會(huì)出現(xiàn)錯(cuò)誤,因此會(huì)出現(xiàn)空白片段。


在修復(fù)此問(wèn)題之前,您可以證明這種情況正在發(fā)生,如下所示:


    @Override

    protected void onPostExecute(String response) {

        super.onPostExecute(response);

        if(response == null){

            Log.e("TUT", "We did not get a response, not updating the UI.");

        } else {

            try {

                JSONObject jsonObject = new JSONObject(response);

                Log.e("response", jsonObject.toString());

                mListData = parseVideoListFromResponse(jsonObject);

                initList(mListData);

                //adapter.notifyDataSetChanged();

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }

    }

您可以通過(guò)兩種方式解決此問(wèn)題:


將doInBackground捕獲更改為:


        } catch (IOException e) {

            Log.e("TUT", "error", e);

            // Change this JSON to match what the parse expects, so you can show an error on the UI

            return "{\"yourJson\":\"error!\"}";

        }

或者onPostExecute:


        if(response == null){

            List errorList = new ArrayList();

            // Change this data model to show an error case to the UI

            errorList.add(new YouTubeDataModel("Error");

            mListData = errorList;

            initList(mListData);

        } else {

            try {

                JSONObject jsonObject = new JSONObject(response);

                Log.e("response", jsonObject.toString());

                mListData = parseVideoListFromResponse(jsonObject);

                initList(mListData);

                //adapter.notifyDataSetChanged();

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }

希望有所幫助,代碼中可能還有其他錯(cuò)誤,但如果 API、Json、授權(quán)、互聯(lián)網(wǎng)等存在問(wèn)題,則可能會(huì)發(fā)生這種情況。


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

添加回答

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