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();
}
}
}
Android使用AnysnTask強求數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.