Android使用AnysnTask强求数据
16lz
2021-01-26
package com.bwie.yuekao;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import com.bwie.type.Types;import android.app.Activity;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity { private List<Types> types=null; private Types type=null; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView=(ListView) findViewById(R.id.list_main); new MyAsycnack().execute(); } public class MyAsycnack extends AsyncTask<String, Integer, InputStream>{ @Override protected InputStream doInBackground(String... params) { // TODO Auto-generated method stub InputStream inputStream = null; try { URL url=new URL("http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182&dtype=xml"); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); connection.connect(); if(connection.getResponseCode()==200){ Log.i("aaa", 123+"0"); inputStream = connection.getInputStream(); Log.i("aaa", inputStream.toString()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return inputStream; } @Override protected void onPostExecute(final InputStream result) { // TODO Auto-generated method stub super.onPostExecute(result); getXmlString(result); } } public void getXmlString(InputStream stream){ try { String tagName=""; XmlPullParserFactory pullFactory = XmlPullParserFactory.newInstance(); XmlPullParser parser = pullFactory.newPullParser(); parser.setInput(stream, "UTF-8"); int eventType = parser.getEventType(); while(eventType!=XmlPullParser.END_DOCUMENT){ switch (eventType) { case XmlPullParser.START_DOCUMENT: types=new ArrayList<Types>(); break; case XmlPullParser.START_TAG: tagName=parser.getName(); if(tagName.equals("item")){ type=new Types(); } if(tagName.equals("catalog")){ type.setType(parser.nextText()); }else if(tagName.equals("id")){ type.setId(parser.nextText()); } break; case XmlPullParser.END_TAG: if(parser.getName().equals("item")){ types.add(type); Log.i("aaa", types.toString()); } tagName=""; List<String> list=new ArrayList<String>(); for(int i=0;i<types.size();i++){ list.add(types.get(i).getType()); } ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,R.layout.list_type,R.id.tv_type,list); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,DetailActivity.class); intent.putExtra("id", types.get(position).getId()); startActivity(intent); } }); break; } eventType = parser.next(); } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer