getview方法不是在android中调用自定义listview方法

时间:2012-04-30 09:32:56

标签: android android-listview

我有Arraylist作为[x,y,z ..]。我想在ArrayList中使用此ListView [x,y,z ..],但未调用getview()方法  我正在尝试这段代码:

public class CustomAdapter extends BaseAdapter
{
public static ArrayList<String> arr=new ArrayList<String>();

public Context Context;
private LayoutInflater inflater;

HashMap<String, String> map = new HashMap<String, String>();
public CustomAdapter(Context context, ArrayList<String> arr) 
{
    Context=context;
    inflater=LayoutInflater.from(context);
    arr=arr;

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

public Object getItem(int position) 
{
    // TODO Auto-generated method stub
    return arr.get(position);
}

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

public View getView(int position, View convertView, ViewGroup parent) 
    {
    System.out.println(arr.get(posstion));
        ViewHolder holder;

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

   holder.textViewSelectedText = (TextView)convertView.findViewById(R.id.selectedtext);
            convertView.setTag(holder);
        }
        else 
        {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.textViewSelectedText.setText(arr.get(position));
        return convertView;
    }

    class ViewHolder
    {
        TextView textViewSelectedText = null;
    }
}

System.out.println(arr.get(posstion));

此行在getview()方法内,并且不打印值..请帮帮我。

3 个答案:

答案 0 :(得分:2)

您应该使用ListView上的setAdapter函数让它使用您的自定义适配器

编辑:CustomAdapter构造函数中有一个拼写错误:代码应该是

this.arr = arr

而不是

arr = arr

答案 1 :(得分:0)

你错误拼写了这个位置 改变

System.out.println(arr.get(posstion));

通过

System.out.println(arr.get(position));

答案 2 :(得分:0)

在你的getview方法中你的sop是System.out.println(arr.get(posstion));.我认为它应该是System.out.println(arr.get(position));
因为在你的getview方法中,int位置是定义的而不是必需的。检查代码中的拼写

public View getView(int position, View convertView, ViewGroup parent){
   System.out.println(arr.get(position));
}

即使这不起作用,也尝试使用

public CustomAdapter(Context context, ArrayList<String> arr) 
{     
   Context=context;  
   inflater=LayoutInflater.from(context);  
   arr=arr;  
   System.out.println("arr: " + arr.size);

}

如果size为0,那么你没有从活动classto这个适配器获得任何结果