0

リストビューを扱うのは初めてなので、初心者のエラーについては事前に失礼します。

カスタム getView のコードは次のとおりです。

public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder mHolder;
    if (convertView == null) {
        /*Toast toast = Toast.makeText(context, "nullConvertView", Toast.LENGTH_SHORT);
        toast.show();*/
        mHolder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.listitem, parent, false);


        mHolder.PetName = (TextView) convertView.findViewById(R.id.PetName);

        mHolder.PetImage = (RoundedImageView) convertView.findViewById(R.id.PetImage);



        updateItem(mHolder, this.getItem(position));

        convertView.setTag(mHolder);
    } else {
        mHolder = (ViewHolder) convertView.getTag();
    }

    return convertView;
}

関数 updateItem はドロップボックス データストアに接続し、データストアのタイトルや画像などの情報を取得し (リストビューの各行はドロップボックス データストアです)、mHolder.PetName.setText(queriedresultstring) ecc を介してそれらを設定します。

このようにコードを保持すると、スクロール時にビューが繰り返されますが、updateItem 関数を if/else 条件の外に移動すると、すべて正常に動作しますが、リストビューをスクロールするたびに、画面に再表示される各行についてデータベースに再度クエリを実行します.

ビューが画面に戻るたびにデータベースにクエリを実行することなく、情報をビューに保存しておく方法はありますか?

ありがとうございました

4

1 に答える 1