私はカードをスティープのようにスティープするアプリを作ろうとしています。私はTexviewにテキストがあり、次のカードをスワイプすると別のテキストがあります。私がやりたいことは、ボタンをクリックして画面上のカードを取り出して次のカードに行くことです。リストから最初のStringを削除して、adapter.notifyDataSetChangeを呼び出しています。問題は、画面上のテキストが、クリックするたびに文字列が削除されても同じであっても同じです。私もアダプタの値を記録し、それらは変更され、カードの数は減少していますが、画面上のテキストは同じままです。NotifyDataSetChangedが呼び出されていません
私が呼んonResponse内のデータをダウンロードすると、私はこれが
public class MyAppAdapter extends BaseAdapter {
public List<String> parkingList;
public Context context;
private MyAppAdapter(List<String> apps, Context context) {
this.parkingList = apps;
this.context = context;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = getLayoutInflater();
rowView = inflater.inflate(R.layout.item, parent, false);
viewHolder = new ViewHolder();
ViewHolder.background = (FrameLayout) rowView.findViewById(R.id.background);
viewHolder.cardImage = (TextView) rowView.findViewById(R.id.cardImage);
rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.cardImage.setText(parkingList.get(position));
return rowView;
}
}
私のアダプタである
list.remove(0);
myAppAdapter.notifyDataSetChanged();
呼び出しボタンをクリックすると、flingContainerはadapterView
myAppAdapter = new MyAppAdapter(list, this);
flingContainer.setAdapter(myAppAdapter);
を拡張するカスタムビューであります
私はその1あまりにもしようとしたが、それは私だけでなく、他の多くのもののために仕事をdidntのが、いくつかの時間の後に何を私のために働いていたのは 'notifyDataSetChange()'の前に 'removeAllViewsInLayout()'でした。しかし、私はまだこのdidntの仕事がなぜ分かっていないのですか? – tinoba
removeItem(index)とlist.remove()の両方を呼び出す必要がありますか? – Amir
インスタンスを再確認してください。この場合、removeAllViewsInLayoutはお勧めできません。 – Amir