移植ListView通过自定义BaseAdapter传递多个的ArrayList [英] Populating Listview By Passing Multiple ArrayLists Through Custom BaseAdapter

查看:263
本文介绍了移植ListView通过自定义BaseAdapter传递多个的ArrayList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

解决通过自定义适配器,它被传递多的ArrayList定义见下文填充ListView的神秘面纱。

主要活动:
我们声明的ArrayList

 私有静态的ArrayList<整数GT; img_challengeicon_values​​;
静态的 {
    img_challengeicon_values​​ =新的ArrayList<整数GT;();
    img_challengeicon_values​​.add(R.drawable.actionbar_hello);
    img_challengeicon_values​​.add(R.drawable.actionbar_world);
}
私有静态的ArrayList<整数GT; img_challengerpic_values​​;
静态的 {
    img_challengerpic_values​​ =新的ArrayList<整数GT;();
    img_challengerpic_values​​.add(R.drawable.actionbar_look);
    img_challengerpic_values​​.add(R.drawable.actionbar_down);
}

我们宣布适配器:

  arrayAdapter适配器=新arrayAdapter(这一点,
            img_challengeicon_values​​,
            img_challengerpic_values​​);

适配器活动:
我们扩展了BaseAdapter和放大器;&安培;设置变量:

 延伸BaseAdapter {
私人最终上下文的背景下;
私人的ArrayList<整数GT; img_challengeicon_values​​;
私人的ArrayList<整数GT; img_challengerpic_values​​;

我们称之为构造函数:

 公共arrayAdapter(上下文的背景下,
        ArrayList的<整数GT; img_challengeicon_values​​,
        ArrayList的<整数GT; img_challengerpic_values​​){
this.context =背景;
    this.img_challengeicon_values​​ = img_challengeicon_values​​;
    this.img_challengerpic_values​​ = img_challengerpic_values​​;
}

最后,我们呼吁getView,充气布局,从传递变量定义分配imageviews;像这样:

  imgChallengeIcon.setImageResource(img_challengeicon_values​​.get(位置));
imgChallengerPic.setImageResource(img_challengeicon_values​​.get(位置));


解决方案

  lstdata =(ListView控件)findViewById(R.id.inboxlist);
DB_listAdapter适配器=新DB_listAdapter(这一点,inboxdatalist);
lstdata.setAdapter(适配器);公共类DB_listAdapter延伸BaseAdapter {    私人活动活动;
    ArrayList的<对象> Object_Datas;
    私有静态LayoutInflater吹气= NULL;
    ViewHolder持有人;
    串strurl;
    公共DB_listAdapter(活动,INT标志,ArrayList的<对象> inboxdatalist {
        // TODO自动生成构造函数存根
        活性=一个;
        this.Object_Datas = inboxdatalist;        吹气=(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ImageLoader的=新FB_ImageLoader(activity.getApplicationContext());
    }
    @覆盖
    公众诠释的getCount(){
        // TODO自动生成方法存根
        返回this.Object_Datas.size();
    }    @覆盖
    公共对象的getItem(INT位置){
        // TODO自动生成方法存根
        返回的位置;
    }    @覆盖
    众长getItemId(INT位置){
        // TODO自动生成方法存根
        返回的位置;
    }    公共类ViewHolder {
        公共TextView的用户名;
        公共TextView的消息;
        公众形象ImageView的;
        公众的ImageButton imgaddbtn;
    }
    公共查看getView(INT位置,查看convertView,父母的ViewGroup)
    {
        视图V = convertView;        如果(V == NULL)
        {
            // LayoutInflater VI =(LayoutInflater)activity.getSystemService(myContext.LAYOUT_INFLATER_SERVICE);            V = inflater.inflate(R.layout.listitemfb,NULL);        }        TextView的文本=(TextView的)v.findViewById(R.id.username);
        TextView的文本2 =(TextView中)v.findViewById(R.id.message);
        ImageView的图像=(ImageView的)v.findViewById(R.id.avatar);        返回伏;    }}

Solve the mystery of populating a listview through a custom adapter, which is being passed multiple arraylists as defined below.

MAIN ACTIVITY: we declare the arraylists:

private static ArrayList<Integer> img_challengeicon_values;
static {
    img_challengeicon_values = new ArrayList<Integer>();
    img_challengeicon_values.add(R.drawable.actionbar_hello);
    img_challengeicon_values.add(R.drawable.actionbar_world);
}
private static ArrayList<Integer> img_challengerpic_values;
static {
    img_challengerpic_values = new ArrayList<Integer>();
    img_challengerpic_values.add(R.drawable.actionbar_look);
    img_challengerpic_values.add(R.drawable.actionbar_down);
}

we declare our adapter:

arrayAdapter adapter = new arrayAdapter(this, 
            img_challengeicon_values,
            img_challengerpic_values);

ADAPTER ACTIVITY: we extend BaseAdapter && set variables:

extends BaseAdapter {
private final Context context; 
private ArrayList<Integer> img_challengeicon_values;
private ArrayList<Integer> img_challengerpic_values;

we call constructor:

public arrayAdapter(Context context,
        ArrayList<Integer> img_challengeicon_values,
        ArrayList<Integer> img_challengerpic_values) {
this.context = context;
    this.img_challengeicon_values = img_challengeicon_values;
    this.img_challengerpic_values = img_challengerpic_values;
}

lastly we call getView, inflate layout, and assign imageviews as defined from passed variables; like so:

imgChallengeIcon.setImageResource(img_challengeicon_values.get(position));
imgChallengerPic.setImageResource(img_challengeicon_values.get(position));

解决方案

lstdata = (ListView) findViewById(R.id.inboxlist);
DB_listAdapter adapter = new DB_listAdapter (this,inboxdatalist);
lstdata.setAdapter(adapter);

public class DB_listAdapter extends BaseAdapter {

    private Activity activity;
    ArrayList<Object> Object_Datas;
    private static LayoutInflater inflater=null;
    ViewHolder holder;
    String strurl;


    public DB_listAdapter (Activity a,int flag, ArrayList<Object> inboxdatalist{
        // TODO Auto-generated constructor stub


        activity=a;
        this.Object_Datas=inboxdatalist;

        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        imageLoader=new FB_ImageLoader(activity.getApplicationContext());
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return this.Object_Datas.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public class ViewHolder{
        public TextView username;
        public TextView message;
        public ImageView image;
        public ImageButton imgaddbtn;
    }
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        View v=convertView;



        if(v==null)
        {
            //LayoutInflater vi = (LayoutInflater)activity.getSystemService(myContext.LAYOUT_INFLATER_SERVICE);

            v = inflater.inflate(R.layout.listitemfb, null);

        } 

        TextView text=(TextView)v.findViewById(R.id.username);
        TextView text2=(TextView)v.findViewById(R.id.message);
        ImageView image=(ImageView)v.findViewById(R.id.avatar);





        return v;

    }

}

这篇关于移植ListView通过自定义BaseAdapter传递多个的ArrayList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆