Listview多条目的代码 package com.example.studiowuxianlunbo; import android.support.v7.app.AppCompatActivity; 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 android.widget.Toast; import com.nostra13.universalimageloader.core.ImageLoader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class HuaActivity extends AppCompatActivity { private ListView lv; private List<beanbean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hua); lv = (ListView) findViewById(R.id.lv); init(); } private void init(){ new Thread(){ private ByteArrayOutputStream outputStream; String path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1"; // String path="http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=1"; @Override public void run() { super.run(); try { URL url = new URL(path); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); int code = connection.getResponseCode(); if (code==200){ InputStream inputStream = connection.getInputStream(); outputStream = new ByteArrayOutputStream(); byte[] read=new byte[1024]; int len=-1; while((len=inputStream.read(read))!=-1){ outputStream.write(read,0,len); } } } catch (Exception e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { list=new ArrayList<beanbean>(); // try { // JSONObject jsonObject = new JSONObject(outputStream.toString()); // JSONArray data = jsonObject.getJSONArray("data"); // for (int x=0; x<data.length();x++){ // JSONObject jsonObject1 = data.getJSONObject(x); // String title = jsonObject1.getString("title"); // JSONArray image_list = jsonObject1.getJSONArray("image_list"); // for (int a=0;a<image_list.length();a++){ // JSONObject jsonObject2 = image_list.getJSONObject(a); // String url = jsonObject2.getString("url"); // beanbean beanbean = new beanbean(); // beanbean.setUtl(url); // beanbean.setTitle(title); // list.add(beanbean); // } // } // } catch (Exception e) { // e.printStackTrace(); // } // Toast.makeText(HuaActivity.this,outputStream.toString(),Toast.LENGTH_LONG).show(); try { JSONObject jsonObject = new JSONObject(outputStream.toString()); JSONArray newlist = jsonObject.getJSONArray("newslist"); for (int x=0;x<newlist.length();x++){ JSONObject jsonObject1 = newlist.getJSONObject(x); String description = jsonObject1.getString("description"); String url = jsonObject1.getString("picUrl"); beanbean beanbean = new beanbean(); beanbean.setUrl(url); beanbean.setDescription(description); list.add(beanbean); lv.setAdapter(new Myter()); // Toast.makeText(HuaActivity.this,beanbean.getDescription()+beanbean.getUrl(),Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); } } }); } }.start(); } class Myter extends BaseAdapter{ // // private Hander hander; // // @Override // public int getCount() { // return list.size(); // } // // @Override // public Object getItem(int position) { // return list.get(position); // } // // @Override // public long getItemId(int position) { // return position; // } // // @Override // public View getView(int position, View convertView, ViewGroup parent) { // hander = new Hander(); // for (int a=0;a<list.size();a++){ // if (list.get(a).getUtl()==null){ // convertView= View.inflate(HuaActivity.this,R.layout.t,null); // hander.text= (TextView) convertView.findViewById(R.id.ttext); // }else{ // convertView= View.inflate(HuaActivity.this,R.layout.item,null); // hander.text= (TextView) convertView.findViewById(R.id.textname); // hander.image= (ImageView) convertView.findViewById(R.id.imagename); // } // beanbean beanbean = list.get(a); // hander.text.setText(beanbean.getTitle()); // ImageLoader.getInstance().displayImage(beanbean.getUtl(),hander.image); // } // return convertView; // } private Hander hander; final int TYPE_1 = 0; final int TYPE_2 = 1; final int TYPE_3 = 2; private ImageView image32; private ImageView image33; @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { int itemViewType = getItemViewType(position); if (convertView==null){ hander=new Hander(); switch (itemViewType){ case TYPE_1: convertView=View.inflate(HuaActivity.this,R.layout.t,null); hander.text= (TextView) convertView.findViewById(R.id.ttext); break; case TYPE_2: convertView=View.inflate(HuaActivity.this,R.layout.item,null); hander.text= (TextView) convertView.findViewById(R.id.textname); hander.image= (ImageView) convertView.findViewById(R.id.imagename); break; case TYPE_3: convertView=View.inflate(HuaActivity.this,R.layout.item2,null); hander.text= (TextView) convertView.findViewById(R.id.text3); hander.image= (ImageView) convertView.findViewById(R.id.image31); image32 = (ImageView) convertView.findViewById(R.id.image32); image33 = (ImageView) convertView.findViewById(R.id.image33); break; default: break; } convertView.setTag(hander); }else{ hander= (Hander) convertView.getTag(); } beanbean beanbean = list.get(position); hander.text.setText(beanbean.getDescription()); switch (itemViewType){ case TYPE_1: break; case TYPE_2: ImageLoader.getInstance().displayImage(beanbean.getUrl(),hander.image); break; case TYPE_3: ImageLoader.getInstance().displayImage(beanbean.getUrl(),hander.image); ImageLoader.getInstance().displayImage(beanbean.getUrl(),image32); ImageLoader.getInstance().displayImage(beanbean.getUrl(),image33); break; } return convertView; } @Override public int getViewTypeCount() { return 10; } @Override public int getItemViewType(int position) { int p=position%6; if (p==0){ return TYPE_1; } else if (p<3){ return TYPE_2; } else if(p<6){ return TYPE_3; } else { return TYPE_1; } } class Hander{ TextView text; ImageView image; } // } }
Listview多条目的代码
最新推荐文章于 2018-12-12 15:27:41 发布
该博客展示了如何在Android中使用ListView显示从API获取的多条目数据。通过创建自定义BaseAdapter,解析JSON数据,并在getView方法中处理不同类型的视图,实现了包含图片和文本的列表项展示。
摘要由CSDN通过智能技术生成