亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【搞錯了,沒看到后面的視頻在onPostExecute加綁定adapter】程序無報錯,但是頁面顯示空白,無法加載

【搞錯了,沒看到后面的視頻在onPostExecute加綁定adapter】

【MainActivity代碼】

package com.example.asynctask;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;


import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;


import android.app.Activity;

import android.os.AsyncTask;

import android.os.Bundle;

import android.widget.ListView;


public class MainActivity extends Activity {


private ListView mListView;

private static String URL = "http://www.xianlaiwan.cn/api/teacher?type=4&num=30";


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mListView = (ListView) findViewById(R.id.lv_main);

mListView.setAdapter(new NewsAdapter(MainActivity.this,getJsonData(URL)));

new NewAsyncTask().execute(URL);

}


// 將url//

private List<NewsBean> getJsonData(String url) {

List<NewsBean> newsBeanList = new ArrayList<>();

try {

String jsonString = readStream(new URL(url).openStream());

// logcat打印,未解析數據

// Log.d("xys",jsonString);


/* 解析JSON數據到List中 */

JSONObject jsonObject;

NewsBean newsBean;

try {

jsonObject= new JSONObject(jsonString);

JSONArray jsonArray = jsonObject.getJSONArray("data");

for (int i = 0; i < jsonArray.length(); i++) {

jsonObject = jsonArray.getJSONObject(i);

newsBean = new NewsBean();

newsBean.newsIconUrl = jsonObject.getString("picSmall");

newsBean.newsTitle = jsonObject.getString("name");

newsBean.newsContent = jsonObject.getString("description");

newsBeanList.add(newsBean);

}

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (IOException e) {

// TODO: handle exception

e.printStackTrace();

}

return newsBeanList;

}


private String readStream(InputStream is) {

InputStreamReader isr;

String result = "";

try {

String line = "";

isr = new InputStreamReader(is, "utf-8"); // 字節流轉字符流

BufferedReader br = new BufferedReader(isr);

while ((line = br.readLine()) != null) {

result += line;

}

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}?

return result;

}


class NewAsyncTask extends AsyncTask<String, Void, List<NewsBean>> {

@Override

protected List<NewsBean> doInBackground(String... params) {

// TODO Auto-generated method stub

return getJsonData(params[0]);

}


}


}

/*

已經排查過權限及工程其他類,覺得MainActivity存在Bug的問題比較大,故只貼了MainActivity

*/http://img1.sycdn.imooc.com//56383ad20001f84e08190716.jpg

正在回答

1 回答

同問?


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Android必學-異步加載
  • 參與學習       50616    人
  • 解答問題       333    個

了解Android中的異步加載處理方法,這是面試問的最多的知識點

進入課程

【搞錯了,沒看到后面的視頻在onPostExecute加綁定adapter】程序無報錯,但是頁面顯示空白,無法加載

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號