如何让自己的适配器ArrayList的位置 [英] how to get position of arraylist in own adapter

查看:170
本文介绍了如何让自己的适配器ArrayList的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要到ArrayList(项目)的位置设置到我自己的ListView适配器。

  holder.txtViewTitle.setText(title.get(位置));

但我得到了错误。
请检查下面code。

我也得到了setImageResource的错误。

  holder.imgViewLogo.setImageResource(图像[位置]);

感谢。

 公共类LazyAdapter延伸BaseAdapter {私人activites语境;
私人的ArrayList<串GT;标题;
私有String []图像;
私人LayoutInflater吹气;
公共LazyAdapter(activites activites,字符串[] IMG,ArrayList的<串GT;项目){
    超();    this.context = activites;
    this.title =物品;
    this.images = IMG;}@覆盖
公众诠释的getCount(){
    // TODO自动生成方法存根
    返回title.size();
}@覆盖
公共对象的getItem(INT位置){
    // TODO自动生成方法存根
    返回null;
}@覆盖
众长getItemId(INT位置){
    // TODO自动生成方法存根
    返回0;
}公共静态类ViewHolder
{
    ImageView的imgViewLogo;
    TextView的txtViewTitle;}@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
    // TODO自动生成方法存根    ViewHolder持有人;
    如果(convertView == NULL)
    {
        持有人=新ViewHolder();
        convertView = inflater.inflate(R.layout.activity_listitem,NULL);        holder.imgViewLogo =(ImageView的)convertView.findViewById(R.id.activity_list_logo);
        holder.txtViewTitle =(TextView中)convertView.findViewById(R.id.activity_list_title);        convertView.setTag(保持器);
    }
    其他
        支架=(ViewHolder)convertView.getTag();    holder.imgViewLogo.setImageResource(图像[位置]);
    holder.txtViewTitle.setText(title.get(位置));
    返回convertView;
}}


解决方案

 公共类LazyAdapter延伸BaseAdapter {私人activites语境;
私人的ArrayList<串GT;标题;
私有String []图像;
私人LayoutInflater吹气;
 位图MYBITMAP;
公共LazyAdapter(activites activites,字符串[] IMG,ArrayList的<串GT;项目){
    超();    this.context = activites;
    this.title =物品;
    this.images = IMG;}@覆盖
公众诠释的getCount(){
    // TODO自动生成方法存根
    返回title.size();
}@覆盖
公共对象的getItem(INT位置){
    // TODO自动生成方法存根
    返回null;
}@覆盖
众长getItemId(INT位置){
    // TODO自动生成方法存根
    返回0;
}公共静态类ViewHolder
{
    ImageView的imgViewLogo;
    TextView的txtViewTitle;}@覆盖
公共查看getView(INT位置,查看convertView,父母的ViewGroup){
    // TODO自动生成方法存根
 尝试{
                      URL =新的URL(图像[位置]);
                      连接=(HttpURLConnection类)网址
                                    .openConnection();                        connection.setDoInput(真);
                            connection.connect();
                             connection.setReadTimeout(120000);
                             输入的InputStream = connection.getInputStream();
                             MYBITMAP = BitmapFactory.de codeStream(输入);                            }赶上(IOException异常五){
                        e.printStackTrace();
                        返回null;
                    }
    ViewHolder持有人;
    如果(convertView == NULL)
    {
        持有人=新ViewHolder();
        convertView = inflater.inflate(R.layout.activity_listitem,NULL);        holder.imgViewLogo =(ImageView的)convertView.findViewById(R.id.activity_list_logo);
        holder.txtViewTitle =(TextView中)convertView.findViewById(R.id.activity_list_title);        convertView.setTag(保持器);
    }
    其他
        支架=(ViewHolder)convertView.getTag();    holder.imgViewLogo.setImageBitmap(MYBITMAP);
    holder.txtViewTitle.setText(title.get(位置));
    返回convertView;
}}

I want to set the position of the arraylist (items) into my own adapter of listview.

 holder.txtViewTitle.setText(title.get(position)); 

But I got the error. Please check the below code.

also I got the error of the setImageResource.

 holder.imgViewLogo.setImageResource(images[position]);  

Thanks.

public class LazyAdapter extends BaseAdapter{

private activites context;
private ArrayList<String> title;
private String[] images;
private LayoutInflater inflater;


public LazyAdapter(activites activites,String[] img ,ArrayList<String> items) {  
    super();  

    this.context = activites;  
    this.title = items;  
    this.images = img; 

}  

@Override  
public int getCount() {  
    // TODO Auto-generated method stub  
    return title.size();  
}  

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

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

public static class ViewHolder  
{  
    ImageView imgViewLogo;  
    TextView txtViewTitle;  

}  

@Override  
public View getView(int position, View convertView, ViewGroup parent) {  
    // TODO Auto-generated method stub  

    ViewHolder holder;  
    if(convertView==null)  
    {  
        holder = new ViewHolder();  
        convertView = inflater.inflate(R.layout.activity_listitem, null);  

        holder.imgViewLogo = (ImageView) convertView.findViewById(R.id.activity_list_logo);  
        holder.txtViewTitle = (TextView) convertView.findViewById(R.id.activity_list_title);  

        convertView.setTag(holder);  
    }  
    else  
        holder=(ViewHolder)convertView.getTag();  

    holder.imgViewLogo.setImageResource(images[position]);  
    holder.txtViewTitle.setText(title.get(position));  


    return convertView;  
}   

}

解决方案

public class LazyAdapter extends BaseAdapter{

private activites context;
private ArrayList<String> title;
private String[] images;
private LayoutInflater inflater;
 Bitmap myBitmap;


public LazyAdapter(activites activites,String[] img ,ArrayList<String> items) {  
    super();  

    this.context = activites;  
    this.title = items;  
    this.images = img; 

}  

@Override  
public int getCount() {  
    // TODO Auto-generated method stub  
    return title.size();  
}  

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

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

public static class ViewHolder  
{  
    ImageView imgViewLogo;  
    TextView txtViewTitle;  

}  

@Override  
public View getView(int position, View convertView, ViewGroup parent) {  
    // TODO Auto-generated method stub  
 try {
                      url = new URL(images[position]);
                      connection = (HttpURLConnection) url
                                    .openConnection();

                        connection.setDoInput(true);


                            connection.connect();
                             connection.setReadTimeout(120000);
                             InputStream     input = connection.getInputStream();
                             myBitmap = BitmapFactory.decodeStream(input);

                            } catch (IOException e) {
                        e.printStackTrace();
                        return null;
                    }
    ViewHolder holder;  
    if(convertView==null)  
    {  
        holder = new ViewHolder();  
        convertView = inflater.inflate(R.layout.activity_listitem, null);  

        holder.imgViewLogo = (ImageView) convertView.findViewById(R.id.activity_list_logo);  
        holder.txtViewTitle = (TextView) convertView.findViewById(R.id.activity_list_title);  

        convertView.setTag(holder);  
    }  
    else  
        holder=(ViewHolder)convertView.getTag();  

    holder.imgViewLogo.setImageBitmap(myBitmap);  
    holder.txtViewTitle.setText(title.get(position));  


    return convertView;  
}   

}

这篇关于如何让自己的适配器ArrayList的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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