Я новичок в android разработке. Я разрабатываю приложение, которое принимает значения списка в RecyclerView.Adapter. Моя проблема заключается в том, что я хочу отредактировать значения, отображаемые адаптером recyclerView, используя Textwatcher()
, и уведомить recyclerView, чтобы повлиять на изменения в том же RecyclerView. Я использую базу данных Firestore в качестве базы данных и RecyclerView.Adapter. Может ли кто-нибудь помочь.
**public class ListAdapters extends RecyclerView.Adapter<ListAdapters.ViewHolder> {
private Context mContect;
private List<String> list_details;
private OnItemClickListener onItemClickListener;
public ListAdapters(Context mContect, List<String> list_details) {
this.mContect = mContect;
this.list_details = list_details;
}
@NonNull
@Override
public ListAdapters.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewholder_list, parent, false);
return new ListAdapters.ViewHolder(view, onItemClickListener);
}
@Override
public void onBindViewHolder(@NonNull ListAdapters.ViewHolder holder, int position) {
holder.listTV.setText(list_details.get(position));
holder.listTV.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
@Override
public int getItemCount() {
return list_details.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView listTV;
public ViewHolder(@NonNull final View itemView, final OnItemClickListener listener) {
super(itemView);
listTV = itemView.findViewById(R.id.listTv);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (listener!=null){
int position = getAdapterPosition();
if (position!=RecyclerView.NO_POSITION){
listener.onItemClick(position);
}
}
}
});
}
}
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
onItemClickListener = listener;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////Activity Startup.............................................
public class ListItems extends AppCompatActivity {
private void recyclerViewEventListener() {
listCollectionRef.document(listID)
.get()
.addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot documentSnapshot = task.getResult();
if (documentSnapshot.exists() && documentSnapshot.get("listDescription") != null) {
eventKey = documentSnapshot.getString("Event_Key");
storedItems.clear();
storedItems.addAll((List<String>) documentSnapshot.get("listDescription"));
adapter.notifyDataSetChanged();
}
}
}
});
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
adapter.setOnItemClickListener(new ListAdapters.OnItemClickListener() {
@Override
public void onItemClick(int position) {
Log.d(TAG, "onItemClick: "+ position);
// storedItems.remove(position);
adapter.notifyItemRemoved(position);
}
});
}**