Android 活动恢复时是否更新RecyclerView?
我有一个Android 活动恢复时是否更新RecyclerView?,android,android-recyclerview,material-design,Android,Android Recyclerview,Material Design,我有一个问题活动如果我在回收视图中显示问题列表 我在工具栏中有两个动作 转到下载文件活动 去最喜欢的活动 一切正常,但当我点击其中一个操作并返回到QuestionActivity时,RecyclerView无法更新 所以我需要重写OnResume方法。我的问题是,如何在onResume方法中更新RecyclerView AdapterRecyclerQuestioncode: public class AdapterRecyclerQuestion extends RecyclerView.Ad
问题活动
如果我在回收视图中显示问题列表
我在工具栏中有两个动作
QuestionActivity
时,RecyclerView
无法更新
所以我需要重写OnResume方法。我的问题是,如何在onResume
方法中更新RecyclerView
AdapterRecyclerQuestion
code:
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();
}
}
}
公共类AdapterRecyclerQuestion扩展了RecyclerView.Adapter{
私人语境;
私人ArrayList问题a;
私人住宅;
////////////////////////////////////////////////////////////
//=========================构造函数=========================
////////////////////////////////////////////////////////////
公共AdapterRecyclerQuestion(上下文,ArrayList questionha){
this.context=上下文;
this.questionha=questionha;
}
////////////////////////////////////////////////////////////
//===============================视图支架=========================
////////////////////////////////////////////////////////////
公共类ViewHolder扩展了RecyclerView.ViewHolder{
私有文本视图txtTitle;
私有文本视图txtDesc;
私有文本视图txtCntDown;
私人按钮BTN下载;
私有图像视图imgAddFav;
私有ProgressBar prgDownload;
////////////////////////////////////////////////////////////
//=========================视图持有者构造函数==============
////////////////////////////////////////////////////////////
公共视图持有者(视图项视图){
超级(项目视图);
txtTitle=(TextView)itemView.findViewById(R.id.txt\u title\u question);
txtDesc=(TextView)itemView.findViewById(R.id.txt_desc_question);
txtCntDown=(TextView)itemView.findViewById(R.id.txt\u cnt\u down\u question\u dy);
btnDownload=(按钮)itemviewbyd(R.id.btn\u down\u问题);
imgAddFav=(ImageView)itemView.findViewById(R.id.img\u add\u to\u fav);
prgDownload=(ProgressBar)itemviewbyd(R.id.prgDownload);
}
}
////////////////////////////////////////////////////////////
//===========================在创建视图保持架时================
////////////////////////////////////////////////////////////
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.question_行,parent,false);
返回新的ViewHolder(视图);
}
////////////////////////////////////////////////////////////
//===========================在绑定视图保持架上=================
////////////////////////////////////////////////////////////
@凌驾
公共无效onBindViewHolder(最终视图持有人,最终整型位置){
QuestionDatabaseAdapter QuestionDatabaseAdapter=新的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());
////////////////////////////////////////////////////////////
//=================================收藏夹检查====================
////////////////////////////////////////////////////////////
布尔值isFavorite=questionDatabaseAdapter.isQuestionFavorite(questionha.get(position.getQuestionId());
如果(我最喜欢)
{
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp);
}否则
{
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_border_red_a700_24dp);
}
////////////////////////////////////////////////////////////
//=========================img添加fav侦听器=================
////////////////////////////////////////////////////////////
holder.imgAddFav.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
QuestionDatabaseAdapter databaseAdapter=新的QuestionDatabaseAdapter(v.getContext());
布尔值isFav=databaseAdapter.isQuestionFavorite(questionha.get(position.getQuestionId());
如果(!isFav){
Toast.makeText(v.getContext(),“Toast.LENGTH.”show();
holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp);
ModelQuestion=newmodelQuestion();
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(问题);
public void setData(ArrayList<ModelQuestion> data){
questionha=data;
notifyDataSetChanged();
}
////////////////////////////////////////////////////////////
//================== on Resume ===========
////////////////////////////////////////////////////////////
@Override
protected void onResume() {
super.onResume();
adapterRecyclerQuestion.notifyDataSetChanged();
recyclerQuestion.setAdapter(adapterRecyclerQuestion);
}