我已经通过服务器的JSON响应填充了一个回收视图。
回收视图由图像和时间组成。还有一个按钮,其可见性设置为不可见。

这是每个项目的外观与按钮(也编辑)可见
现在,在菜单项(应用程序)中有一个编辑按钮,我想将所有回收视图按钮都设置为可见。
我怎样才能做到这一点?我试着去寻找同样的东西,但没有结果。
编辑:
这是显示RecyclerView的计划片段中的项目代码。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_edit:
//onClick of edit menu item
return true;
default:
return super.onOptionsItemSelected(item);
}
}这是ViewHolder类在ScheduleAdapter中
public class ViewHolder extends RecyclerView.ViewHolder {
private NetworkImageView imageView_status;
private TextView textView_status;
private TextView textView_time;
private Button button_edit;
public ViewHolder(View itemView) {
super(itemView);
imageView_status = (NetworkImageView) itemView.findViewById(R.id.imageView);
textView_status = (TextView) itemView.findViewById(R.id.textView_Status);
textView_time = (TextView) itemView.findViewById(R.id.textView_Time);
button_edit = (Button) itemView.findViewById(R.id.button);
}
}这是onBindViewHolder of the ScheduleAdapter
public void onBindViewHolder(final CustomScheduleListAdapter.ViewHolder holder, int position) {
if (imageLoader == null) {
imageLoader = AppController.getInstance().getImageLoader();
}
holder.imageView_status.setImageUrl(punches.get(position).getImageURL(), imageLoader);
holder.textView_status.setText(punches.get(position).getStatusName());
holder.textView_time.setText(punches.get(position).getTimings());
holder.button_edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
//Actions performed after button click
}
});
}发布于 2017-07-20 06:18:17
您可以在适配器中有一个字段来跟踪是否应该将RecyclerView项设置为可见项。然后在onBindViewHolder中根据它设置视图的可见性。最后,在onOptionsItemSelected中,您可以在适配器中设置该字段的值,并在其上调用notifyItemRangeChanged。
例如:
适配器:
public class ScheduleAdapter extends RecyclerView.Adapter<CustomScheduleListAdapter.ViewHolder> {
private boolean showAllViews = false;
public void setShowAllViews(boolean show) {
showAllViews = show;
notifyItemRangeChanged(0, getItemCount());
}
@Override
public void onBindViewHolder(CustomScheduleListAdapter.ViewHolder holder, int position) {
holder.viewyoucareabout.setVisibility(showAllViews? View.VISIBLE : View.GONE);
}
}附表片段:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_edit:
adapter.setShowAllViews(true);
return true;
default:
return super.onOptionsItemSelected(item);
}
}https://stackoverflow.com/questions/45206334
复制相似问题