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

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

正在回答

1 回答

package com.example.news;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.MalformedURLException;

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.view.Menu;

import android.view.MenuItem;

import android.widget.ListView;



public class MainActivity extends Activity {


private ListView listView;

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

? ? ? ? listView=(ListView) findViewById(R.id.lv_main);

? ? ? ? new NewsAsyncTask().execute(URL);

? ? }

? ??

? ? //將URL對應的JSON格式數據轉化為我么所封裝的NewsBean

? ? private List<NewsBean> getJsonData(String url) {

// TODO Auto-generated method stub

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

? ? try {

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

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 (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

? ? return newsBeanList;

}

? ? //通過is解析網頁返回的數據

? ? 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) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

? ?

? ? }

? ? //實現網絡的異步訪問

? ? class NewsAsyncTask extends AsyncTask<String,Void,List<NewsBean>>

? ? {


@Override

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

// TODO Auto-generated method stub

return getJsonData(params[0]);

}

@Override

protected void onPostExecute(List<NewsBean> result) {

// TODO Auto-generated method stub

super.onPostExecute(result);

NewsAdapter adapter = new NewsAdapter(MainActivity.this,result);

listView.setAdapter(adapter);

}


? ?

? ? }


? ?

}


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

舉報

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

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

進入課程

求視頻源碼

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

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

幫助反饋 APP下載

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

公眾號

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