ListView分类加载

来源:互联网 发布:超次元矩阵闪退 编辑:程序博客网 时间:2024/06/07 02:06
package com.example.administrator.zuoye3_activity.activity;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import android.widget.Toast;import com.example.administrator.zuoye3_activity.R;import com.example.administrator.zuoye3_activity.base.Base;import com.example.administrator.zuoye3_activity.utils.Utils;import com.example.administrator.zuoye3_activity.bean.User;import com.google.gson.Gson;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import cz.msebera.android.httpclient.HttpResponse;import cz.msebera.android.httpclient.client.HttpClient;import cz.msebera.android.httpclient.client.methods.HttpGet;import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;public class MainActivity extends AppCompatActivity {    private String JsonUrl="http://mock.eolinker.com/success/tuHqTZ8UYAnYKvaT9b9Sdu3ZbMJmvGjJ";    private ArrayList<User> list;    private ListView listView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView = (ListView) findViewById(R.id.list);        MyAsyncTask task=new MyAsyncTask();        task.execute(JsonUrl);    }    private class MyAsyncTask extends AsyncTask<String,Integer,String>{        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            String json = s.toString();            Gson gson=new Gson();            User user = gson.fromJson(json, User.class);            listView.setAdapter(new Base(MainActivity.this,user));        }        @Override        protected String doInBackground(String... params) {            String s = params[0];            HttpClient httpClient=new DefaultHttpClient();            HttpGet httpGet=new HttpGet(s);            try {                HttpResponse response = httpClient.execute(httpGet);                if (response.getStatusLine().getStatusCode()==200){                    InputStream inputStream = response.getEntity().getContent();                    String json = Utils.getJson(inputStream);                    return json;                }            } catch (IOException e) {                e.printStackTrace();            }            return null;        }    }

}

package com.example.administrator.zuoye3_activity.base;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.administrator.zuoye3_activity.R;import com.example.administrator.zuoye3_activity.bean.User;import com.nostra13.universalimageloader.core.ImageLoader;/** * Created by Administrator on 2017/2/15. */public class Base extends BaseAdapter {    private Context context;    private User user;    //定义四个不同的类型    private final int v_1 = 0;    private final int v_2 = 1;    private final int v_3 = 2;    private final int v_4 = 3;    public Base(Context context, User user) {        this.context = context;        this.user = user;    }    @Override    public int getViewTypeCount() {        //几个不同类型的条目        return 4;    }    @Override    public int getItemViewType(int position) {        if (position == 0) {            return v_1;        } else if (position < 10) {            return v_2;        } else if ( position < 14) {            return v_3;        } else if (position == 14) {            return v_4;        }        return 0;    }    @Override    public int getCount() {        //15条目        return 15;    }    @Override    public Object getItem(int position) {        return position;    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder1 v1 = new ViewHolder1();        ViewHolder2 v2 = new ViewHolder2();        ViewHolder3 v3 = new ViewHolder3();        ViewHolder4 v4 = new ViewHolder4();        //获取游标        int type = getItemViewType(position);        if (convertView == null) {            switch (type) {                case v_1:                    convertView = LayoutInflater.from(context).inflate(R.layout.list1, null);                    v1.imageView1= (ImageView) convertView.findViewById(R.id.image1);                    convertView.setTag(v1);                    break;                case v_2:                    convertView = LayoutInflater.from(context).inflate(R.layout.list2, null);                    v2.imageView2= (ImageView) convertView.findViewById(R.id.image2);                    v2.textView2= (TextView) convertView.findViewById(R.id.text2);                    convertView.setTag(v2);                    break;                case v_3:                    convertView = LayoutInflater.from(context).inflate(R.layout.list3, null);                    v3.imageView3= (ImageView) convertView.findViewById(R.id.image3);                    v3.textView3= (TextView) convertView.findViewById(R.id.text3);                    convertView.setTag(v3);                    break;                case v_4:                    convertView = LayoutInflater.from(context).inflate(R.layout.list4, null);                    v4.textView4_1= (TextView) convertView.findViewById(R.id.text4_1);                    v4.textView4_2= (TextView) convertView.findViewById(R.id.text4_2);                    convertView.setTag(v4);                    break;            }        } else {            switch (type) {                case v_1:                    v1= (ViewHolder1) convertView.getTag();                    break;                case v_2:                    v2= (ViewHolder2) convertView.getTag();                    break;                case v_3:                    v3= (ViewHolder3) convertView.getTag();                    break;                case v_4:                    v4= (ViewHolder4) convertView.getTag();                    break;            }        }        switch (type) {            case v_1:                if (position==0){                    ImageLoader.getInstance().displayImage(user.getData().get(0).getImg().get(0).getCarouselUrl(),v1.imageView1);                }                break;            case v_2:                if (position==1){                    v2.textView2.setText(user.getData().get(1).getBody().get(0).get(0).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(0).get(0).getUrl(),v2.imageView2);                }else if (position==2){                    v2.textView2.setText(user.getData().get(1).getBody().get(0).get(1).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(0).get(1).getUrl(),v2.imageView2);                }else if (position==3){                    v2.textView2.setText(user.getData().get(1).getBody().get(0).get(2).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(0).get(2).getUrl(),v2.imageView2);                }else if (position==4){                    v2.textView2.setText(user.getData().get(1).getBody().get(1).get(0).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(1).get(0).getUrl(),v2.imageView2);                }else if (position==5){                    v2.textView2.setText(user.getData().get(1).getBody().get(1).get(1).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(1).get(1).getUrl(),v2.imageView2);                }else if (position==6){                    v2.textView2.setText(user.getData().get(1).getBody().get(1).get(2).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(1).get(2).getUrl(),v2.imageView2);                }else if (position==7){                    v2.textView2.setText(user.getData().get(1).getBody().get(2).get(0).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(2).get(0).getUrl(),v2.imageView2);                }else if (position==8){                    v2.textView2.setText(user.getData().get(1).getBody().get(2).get(1).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(2).get(1).getUrl(),v2.imageView2);                }else if (position==9){                    v2.textView2.setText(user.getData().get(1).getBody().get(2).get(2).getCategoryTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(1).getBody().get(2).get(2).getUrl(),v2.imageView2);                }                break;            case v_3:                if (position==10){                    v3.textView3.setText(user.getData().get(2).getNotice().get(0).getNoticeTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(2).getNotice().get(0).getPicture(),v3.imageView3);                }else if (position==11){                    v3.textView3.setText(user.getData().get(2).getNotice().get(1).getNoticeTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(2).getNotice().get(1).getPicture(),v3.imageView3);                }else if (position==12){                    v3.textView3.setText(user.getData().get(2).getNotice().get(0).getNoticeTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(2).getNotice().get(2).getPicture(),v3.imageView3);                }else if (position==13){                    v3.textView3.setText(user.getData().get(2).getNotice().get(3).getNoticeTitle());                    ImageLoader.getInstance().displayImage(user.getData().get(2).getNotice().get(3).getPicture(),v3.imageView3);                }                break;            case v_4:                if (position==14){                    v4.textView4_1.setText(user.getData().get(3).getCodeVersion().getVersion());                    v4.textView4_2.setText(user.getData().get(3).getCodeVersion().getVersionId()+"");                }                break;        }        return convertView;    }    private class ViewHolder1 {        ImageView imageView1;    }    private class ViewHolder2 {        TextView textView2;        ImageView imageView2;    }    private class ViewHolder3 {        TextView textView3;        ImageView imageView3;    }    private class ViewHolder4 {        TextView textView4_1;        TextView textView4_2;    }}

0 0
原创粉丝点击