you*_*sef 5 android material-design android-recyclerview
我有一个QuestionActivity我在RecyclerView.
我在工具栏中有两个动作
转到下载文件活动。
去最喜欢的活动。
每一件事情是确定的,但,当我打的行动,重新回到一个QuestionActivity在RecyclerView无法得到更新。
所以我需要覆盖OnResume方法。我的问题是,如何RecyclerView在onResumeMethod 中更新。
AdapterRecyclerQuestion 代码 :
public class AdapterRecyclerQuestion extends RecyclerView.Adapter<AdapterRecyclerQuestion.ViewHolder> {
private Context context;
private ArrayList<ModelQuestion> questionha;
private int lastd;
////////////////////////////////////////////////////////////
//================== Constructor =========================
////////////////////////////////////////////////////////////
public AdapterRecyclerQuestion(Context context, ArrayList<ModelQuestion> questionha) {
this.context = context;
this.questionha = questionha;
}
////////////////////////////////////////////////////////////
//================== view holder =========================
////////////////////////////////////////////////////////////
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView txtTitle;
private TextView txtDesc;
private TextView txtCntDown;
private Button btnDownload;
private ImageView imgAddFav;
private ProgressBar prgDownload;
////////////////////////////////////////////////////////////
//================== View holder constructor ==============
////////////////////////////////////////////////////////////
public ViewHolder(View itemView) {
super(itemView);
txtTitle = (TextView) itemView.findViewById(R.id.txt_title_question);
txtDesc = (TextView) itemView.findViewById(R.id.txt_desc_question);
txtCntDown = (TextView) itemView.findViewById(R.id.txt_cnt_down_question_dy);
btnDownload = (Button) itemView.findViewById(R.id.btn_down_question);
imgAddFav = (ImageView) itemView.findViewById(R.id.img_add_to_fav);
prgDownload = (ProgressBar) itemView.findViewById(R.id.prgDownload);
}
}
////////////////////////////////////////////////////////////
//================== on create view holder ================
////////////////////////////////////////////////////////////
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.question_row, parent, false);
return new ViewHolder(view);
}
////////////////////////////////////////////////////////////
//================== on bind view holder =================
////////////////////////////////////////////////////////////
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
QuestionDatabaseAdapter questionDatabaseAdapter = new QuestionDatabaseAdapter(holder.itemView.getContext());
holder.txtTitle.setText(questionha.get(position).getQuestionTitle());
holder.txtDesc.setText(questionha.get(position).getQuestionDesc());
holder.txtCntDown.setText(questionha.get(position).getQuestionDownCnt());
////////////////////////////////////////////////////////////
//================== Favorite checking ====================
////////////////////////////////////////////////////////////
boolean isFavorite = questionDatabaseAdapter.isQuestionFavorite(questionha.get(position).getQuestionId());
if (isFavorite)
{
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp);
} else
{
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_border_red_a700_24dp);
}
////////////////////////////////////////////////////////////
//================== img add fav listener =================
////////////////////////////////////////////////////////////
holder.imgAddFav.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
QuestionDatabaseAdapter databaseAdapter = new QuestionDatabaseAdapter(v.getContext());
boolean isFav = databaseAdapter.isQuestionFavorite(questionha.get(position).getQuestionId());
if (!isFav) {
Toast.makeText(v.getContext(), "?? ???? ????? ???? ?? ????? ??", Toast.LENGTH_SHORT).show();
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp);
ModelQuestion question = new ModelQuestion();
question.setQuestionId(questionha.get(position).getQuestionId());
question.setQuestionTitle(questionha.get(position).getQuestionTitle());
question.setQuestionDesc(questionha.get(position).getQuestionDesc());
question.setQuestionDownLink(questionha.get(position).getQuestionDownLink());
question.setQuestionDownFileName(questionha.get(position).getQuestionDownFileName());
databaseAdapter.saveQuestion(question);
} else {
Toast.makeText(v.getContext(), "?? ???? ????? ???? ?? ??? ??", Toast.LENGTH_SHORT).show();
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_border_red_a700_24dp);
databaseAdapter.deleteQuestion(questionha.get(position).getQuestionId());
}
}
}
);
}
////////////////////////////////////////////////////////////
//================== get item count method ================
////////////////////////////////////////////////////////////
@Override
public int getItemCount() {
if (questionha.size() == 0) {
return 0;
} else {
return questionha.size();
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
感谢 Anoop M,我只是为我编写了解决方案。我在 QuestionActivity 中编写此代码。
////////////////////////////////////////////////////////////
//================== on Resume ===========
////////////////////////////////////////////////////////////
@Override
protected void onResume() {
super.onResume();
adapterRecyclerQuestion.notifyDataSetChanged();
recyclerQuestion.setAdapter(adapterRecyclerQuestion);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9032 次 |
| 最近记录: |