そのため、リストビューがあり、外部データベースからデータを取得しています。最初は 20 個のアイテムが必要ですが、ユーザーが下にスクロールすると、さらに 20 個が読み込まれます。
class ItemAdapter extends BaseAdapter {
private ArrayList<Item> objects;
private class ViewHolder {
public TextView text_tt;
}
@Override
public int getCount() {
return SIZE;
//return 9;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
final ViewHolder viewHolder;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) getActivity().getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_item, null);
viewHolder = new ViewHolder();
viewHolder.text_tt = (TextView) v.findViewById(R.id.toptext);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if(position==getCount()-1){
LoadMore(); //asynctask - load other 20
}
return v;
}
}
ロード関数では、事前に読み取られたjsonデータを解析するので、リストにさらに20個追加する必要がありnotifyDataSetChanged()
ます..関数はうまく機能しますが、副作用があります.アイテムをクリックしない時間の約50%認識された。下にスクロールして、次の 20 を受け取りますが、どのアイテムもクリックできません。しかし、たとえば、アクティビティを変更してリストビューに戻ると、機能します。なんで?ありがとうございました!