У меня есть RecyclerView
, определенный в моем проекте андроида. Adapter
для RecyclerView
заключается в следующемОбновите просмотр текста recycler?
public class CustomAdapter1 extends RecyclerView.Adapter<CustomAdapter1.MyViewHolder> {
private Fragment1 myFrag;
private ArrayList<DataModel1> dataSet;
DBHandler db;
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView butAccept,butReject;
TextView nick,stat,tit,cat,desc,dt;
public CardView cardView;
public MyViewHolder(View itemView) {
super(itemView);
this.nick = (TextView) itemView.findViewById(R.id.nick);
this.stat = (TextView) itemView.findViewById(R.id.stat);
this.tit = (TextView) itemView.findViewById(R.id.tit);
this.cat = (TextView) itemView.findViewById(R.id.cat);
this.desc = (TextView) itemView.findViewById(R.id.desc);
this.dt = (TextView) itemView.findViewById(R.id.dt);
this.butAccept = (TextView)itemView.findViewById(R.id.accept_textview);
cardView = (CardView) itemView.findViewById(R.id.card_view);
cardView.setOnClickListener(this);
butAccept.setOnClickListener(this);
db = new DBHandler(itemView.getContext());
}
@Override
public void onClick(View v) {
if(v.getId() == butAccept.getId()){
String x = String.valueOf(dataSet.get(getAdapterPosition()).getMeetId());
myFrag.showToast(x);
}
}
}
public CustomAdapter1(ArrayList<DataModel1> data,Fragment1 frag) {
this.dataSet = data;
myFrag = frag;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardfrag1, parent, false);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder,final int listPosition) {
TextView nick = holder.nick;
TextView stat = holder.stat;
TextView tit = holder.tit;
TextView cat = holder.cat;
TextView desc = holder.desc;
TextView dt= holder.dt;
nick.setText(dataSet.get(listPosition).getNick());
stat.setText(dataSet.get(listPosition).getStat());
tit.setText(dataSet.get(listPosition).getTit());
cat.setText(dataSet.get(listPosition).getCat());
desc.setText(dataSet.get(listPosition).getDesc());
dt.setText(dataSet.get(listPosition).getDt());
}
@Override
public int getItemCount() {
return dataSet.size();
}
}
Окончательный TextView
butAccept
имеет динамический values.I имеют внутреннюю БД, который имеет столбец Status
. Когда значение Status
равно 1, мне нужно изменить текст, который отображается в поле TextView butAccept
.
Как мне это сделать? Должен ли я писать функцию в моем CustomAdapter
или в фрагменте, в котором я использую адаптер?
В моем фрагменте У меня есть функция:
private void checkTheAcceptStatus(int x){
int status = db.getMeetingStatus(x);
Toast.makeText(getActivity(),String.valueOf(status),Toast.LENGTH_SHORT).show();
if(status == 1){
}
}
Эта функция который вызывается каждый раз, когда новый элемент добавляется к адаптеру. Внутренняя БД запрашивается правильно, и если возвращается значение Status
. Если значение равно 1, что мне делать?
I saw this question,, но это неясно, и я не смог прийти к какому-либо выводу из этого.
где 'ArrayList dataSet'? из вашей базы данных sqlite тоже? –
pskink
Нет. Это из онлайн-БД. – Tyson
«DataModel1» - это схема данных, которые я получаю из онлайн-базы данных, а «MeetingList» - это схема данных, которые используются SQLite. – Tyson