2016-04-05 21 views
1

現在、私のアプリケーションを使用するゲストとしてクライアントを招待しています。招待状は電子メールで送信され、電子メールアドレスはRecyclerViewで受け入れられるまで表示されます。私はリストビュー内のすべての電子メールをクリアする明確なボタンを作ったが、何らかの理由でクリアボタンを選択したら、それは電子メールをクリアするが、新しい電子メールを入力すると、リスト内のすべての電子メールが再び表示される。リストを更新するときに更新する

ここに使用されるコードです。

public class InviteAdapter extends RecyclerView.Adapter<InviteAdapter.UserViewHolder> { 
    private static final String TAG = "Invite"; 

    private List <Invites> invites; 

    public InviteAdapter(List<Invites> invites){ 
     this.invites = invites; 
    } 

    @Override 
    public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     final View itemView = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.row_email_invite, parent, false); 

     return new UserViewHolder(itemView); 

    } 

    @Override 
    public void onBindViewHolder(UserViewHolder holder, int position) { 
     Invites invite = invites.get(position); 

     holder.emailAddress.setText(invite.getEmail_address()); 
    } 

    Override 
    public int getItemCount() { 
     return invites.size(); 
    } 

    public class UserViewHolder extends RecyclerView.ViewHolder{ 

     TextView emailAddress; 

     public UserViewHolder(View v) { 
      super(v); 
      emailAddress = (TextView) v.findViewById(R.id.row_email); 
     } 
    } 

    public void setInvites(List<Invites> invites){ 
     this.invites = invites; 
     notifyDataSetChanged(); 

    } 

    public void delete() { 
     Log.i(TAG, "Invites deleted"); 
     invites.clear(); 
     notifyDataSetChanged(); 
    } 
} 

はまた、クライアントがXMLを招待する方法の画像を入れているになります。

enter image description here

+0

リストを作成している場所からそのデータソースもクリアする必要がありますか? –

+0

それを詳細に教えてください。 – IyazMiah

+0

あなたがデータベースからデータを取得していて、リストをクリアしてもデータベースのデータがまだそこに残っていれば、あなたのリストをすべて作り直すことになります。 –

答えて

0

のみはあなたのリストをクリアすると、あなたのリストのデータとしてデータを取り除く助けにはなりません元のデータソースにはまだ存在し、そのソースから再度データをフェッチすると、リストから削除したデータが取得されます。それを取り除くには、ソースからもデータを削除してください。

たとえば、データベースからリストを作成する場合は、リストを消去するときにもデータベースからすべてのレコードを削除してください too delete query。

関連する問題