1

私はArraylistas[x、y、z..]を持っています。ArrayListこの[x、y、z ..]を入れたいのですListViewが、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()メソッド内にあり、値を出力していません。助けてください。

4

3 に答える 3

2

ListViewでsetAdapter関数を使用して、カスタムアダプタを使用できるようにする必要があります

編集:CustomAdapterコンストラクターにタイプミスがあります:コードは次のようになります

this.arr = arr

それ以外の

arr = arr
于 2012-04-30T09:50:59.367 に答える
0

位置の変更のスペルを間違えました

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

System.out.println(arr.get(position));
于 2012-04-30T09:42:45.207 に答える
0

ur getviewメソッド内では、sopはSystem.out.println(arr.get(posstion));です。System.out.println(arr.get(position));である必要があると思います。
getviewメソッドでは、int位置が定義されており、posstionではないためです。コードのスペルを確認してください

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

これがうまくいかない場合でも、sopを入れてみてください

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

}

サイズが0の場合、このアダプタへのアクティビティクラスから結果が得られません。

于 2012-04-30T10:14:34.770 に答える