0

ViewHolder を実装しています。私はこのツットを使用しています:リンク

そして、これはコードです:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder viewHolder;

        /*
         * The convertView argument is essentially a "ScrapView" as described is Lucas post 
         * http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/
         * It will have a non-null value when ListView is asking you recycle the row layout. 
         * So, when convertView is not null, you should simply update its contents instead of inflating a new row layout.
         */
        if(convertView==null){

            // inflate the layout
            LayoutInflater inflater = ((Activity) context).getLayoutInflater();
            convertView = inflater.inflate(position, parent, false);

            // well set up the ViewHolder
            viewHolder = new ViewHolder();
            viewHolder.title = (TextView) convertView.findViewById(R.id.title);
            viewHolder.image= (ImageView) convertView.findViewById(R.id.image);

            // store the holder with the view.
            convertView.setTag(viewHolder);

        }else{
            // we've just avoided calling findViewById() on resource everytime
            // just use the viewHolder
            viewHolder = (ViewHolder) convertView.getTag();
        }

        // object item based on the position
        ObjectItem objectItem = data[position];

        // assign values if the object is not null
        if(objectItem != null) {
            // get the TextView from the ViewHolder and then set the text (item name) and tag (item ID) values
            viewHolder.title.setText(objectItem.itemName);
            viewHolder.title.setTag(objectItem.itemId);
        }

        return convertView;

    }

問題は、「ObjectItem」とは何かがわからないことです。そのクラスはどこから来たのですか?

同じ行の「データ」も認識されません。

どうすればいいですか?チュートリアルはそれを説明していません..

ありがとう!

4

2 に答える 2

0

ObjectItemデータのラッパーです。あなたが書いたことから、私は見ることができます:

public class ObjectItem {
 String itemName;
 String itemId;
}

そして、次の方法でそれを埋めることができます:

ObjectItem[] data = new ObjectItem[10];
for (int i = 0; i < 10; i++) {
  ObjectItem tmp = new ObjectItem();
  tmp.itemName = "name_"+i
  tmp.itemId = "id_"+i;
  data[i] = tmp;
}
于 2013-11-02T13:06:26.047 に答える