1

私はカードをスティープのようにスティープするアプリを作ろうとしています。私は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

list.remove(0)と呼ぶので、リストから最初のインデックスを削除するだけですあなたのアダプター。実際にはあなたのアダプタにリストのコピーを渡しますが、それらは異なっています。だから、list.removeを呼び出すために加えて動作させるために(0)アダプタでremoveItem()を追加します。

public void removeItem(int index){ 
     parkingList.remove(index); 
     notifyDataSetChange(); 
} 
+0

私はその1あまりにもしようとしたが、それは私だけでなく、他の多くのもののために仕事をdidntのが、いくつかの時間の後に何を私のために働いていたのは 'notifyDataSetChange()'の前に 'removeAllViewsInLayout()'でした。しかし、私はまだこのdidntの仕事がなぜ分かっていないのですか? – tinoba

+0

removeItem(index)とlist.remove()の両方を呼び出す必要がありますか? – Amir

+0

インスタンスを再確認してください。この場合、removeAllViewsInLayoutはお勧めできません。 – Amir

関連する問題