Android 通过自定义BaseAdapter传递多个ArrayList来填充Listview

Android 通过自定义BaseAdapter传递多个ArrayList来填充Listview,android,listview,arraylist,baseadapter,Android,Listview,Arraylist,Baseadapter,解决了通过自定义适配器填充listview的难题,该适配器将被传递给多个ArrayList,如下所述 主要活动: 我们宣布ArrayList: private static ArrayList<Integer> img_challengeicon_values; static { img_challengeicon_values = new ArrayList<Integer>(); img_challengeicon_values.add(R.drawa

解决了通过自定义适配器填充listview的难题,该适配器将被传递给多个ArrayList,如下所述

主要活动: 我们宣布ArrayList:

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);
}
适配器活动: 我们扩展BaseAdapter&设置变量:

extends BaseAdapter {
private final Context context; 
private ArrayList<Integer> img_challengeicon_values;
private ArrayList<Integer> img_challengerpic_values;
lstdata=(ListView)findViewById(R.id.inboxlist);
DB_listAdapter=新的DB_listAdapter(这是inboxdatalist);
lstdata.setAdapter(适配器);
公共类DB_listAdapter扩展了BaseAdapter{
私人活动;
ArrayList对象_数据;
专用静态充气机=空;
视窗座;
弦乐;
公共DB_listAdapter(活动a,int标志,ArrayList inboxdatalist{
//TODO自动生成的构造函数存根
活动=a;
this.Object_Datas=inboxdatalist;
充气器=(LayoutInflater)activity.getSystemService(Context.LAYOUT\u充气器\u SERVICE);
imageLoader=新的FB_imageLoader(activity.getApplicationContext());
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回此.Object_data.size();
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
公共类视图持有者{
公共文本视图用户名;
公共文本视图消息;
公众形象;
公共图像按钮imgaddbtn;
}
公共视图getView(int位置、视图转换视图、视图组父视图)
{
视图v=转换视图;
如果(v==null)
{
//LayoutInflater vi=(LayoutInflater)activity.getSystemService(myContext.LAYOUT\u充气机\u服务);
v=充气机充气(R.layout.listitemfb,空);
} 
TextView text=(TextView)v.findViewById(R.id.username);
TextView text2=(TextView)v.findViewById(R.id.message);
ImageView图像=(ImageView)v.findViewById(R.id.avatar);
返回v;
}
}

不太明白您在这里要求的是什么。您的列表是否为空/崩溃?这就是问题的迹象。目前已找到一种解决方法,包括直接在数据库上执行查询;避免将操作抽象到其自己的类中。通过调用初始化游标e上的notify data set change(通知数据集更改)有效地重新查询数据。
extends BaseAdapter {
private final Context context; 
private ArrayList<Integer> img_challengeicon_values;
private ArrayList<Integer> img_challengerpic_values;
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;
}
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;

    }

}