package demo.song.com.myap; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import demo.song.com.myap.Bean.MyBean; public class Second extends Activity { public static final int TYPE_0 = 0; public static final int TYPE_1 = 1; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.second); getDatas("http://api.expoon.com/AppNews/getNewsList/type/1/p/1"); listView = (ListView) findViewById(R.id.mylist); } private void getDatas(String path) { new AsyncTask<String, Void, String>() { private String s; //onPostExecute这个方法需要自己写,相当于handler RunOnUIThread,更新UI界面 @Override protected void onPostExecute(String s) { super.onPostExecute(s); //用gson解析网上的json串,需要导入gson依赖,这个是我用的json串,自己看情况修改 Gson gson = new Gson(); MyBean dateBean = gson.fromJson(s, MyBean.class); List<MyBean.DataBean> itemList1 = dateBean.getData(); myAdapter adapter = new myAdapter(itemList1,Second.this); listView.setAdapter(adapter); } //就是子线程,用来做耗时操作的 @Override protected String doInBackground(String... strings) { try { String string = strings[0]; URL url = new URL(string); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); int code = connection.getResponseCode(); if (code==HttpURLConnection.HTTP_OK){ InputStream is = connection.getInputStream(); s = StreamTools.readFromFile(is); //StreamTools工具类,可以看我另外一个 return s; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); //这个很关键,execute就是告诉 AsyncTask开始执行了,启动了。 一定要写 } class myAdapter extends BaseAdapter { Context context; List<MyBean.DataBean> list; public myAdapter(List<MyBean.DataBean> list,Context context) { this.list = list; this.context = context; } @Override public int getItemViewType(int position) { if (position%2==0){ return TYPE_0; }else { return TYPE_1; } } @Override public int getViewTypeCount() { return 2; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); viewHolder0 holder0 = null; viewHolder1 holder1 = null; switch (type){ case 0: if (view==null){ view = View.inflate(context,R.layout.er,null); holder0=new viewHolder0(); holder0.text_1 = (TextView) view.findViewById(R.id.text1_f1); holder0.img_1= (ImageView) view.findViewById(R.id.img1_f1); view.setTag(holder0); }else { holder0 = (viewHolder0) view.getTag(); } break; case 1: if (view==null){ view = View.inflate(context,R.layout.san,null); holder1 = new viewHolder1(); holder1.text_2 = (TextView) view.findViewById(R.id.text2_f1); holder1.img_2= (ImageView) view.findViewById(R.id.img2_f1); view.setTag(holder1); }else { holder1 = (viewHolder1) view.getTag(); } break; } switch (type){ case 0: holder0.text_1.setText(list.get(i).getNews_title()); loderImage(list.get(i).getPic_url(),holder0.img_1); break; case 1: holder1.text_2.setText(list.get(i).getNews_title()); loderImage(list.get(i).getPic_url(),holder1.img_2); break; } return view; } class viewHolder0{ ImageView img_1; TextView text_1; } class viewHolder1{ ImageView img_2; TextView text_2; } } public void loderImage(String url,ImageView imageView){ ImageLoaderConfiguration configuration = ImageLoaderConfiguration .createDefault(this); DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) .showImageOnFail(R.mipmap.ic_launcher) .cacheInMemory(true) .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader instance = ImageLoader.getInstance(); instance.init(configuration); instance.displayImage(url, imageView ,options); //compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' } }
周考一
最新推荐文章于 2024-03-02 11:52:14 发布