gpt4 book ai didi

android - 菜单项(状态栏)和 RecyclerView 项之间的交互?

转载 作者:行者123 更新时间:2023-11-30 00:26:49 25 4
gpt4 key购买 nike

我已经通过来自服务器的 JSON 响应填充了一个 recyclerview。

recyclerview 项目由图像和时间组成。还有一个按钮,其可见性设置为不可见。

enter image description here

这是每个项目在按钮(也可以编辑)可见的情况下的样子

现在,(应用程序的)菜单项中有一个编辑按钮,单击它我想将所有 recyclerview 项目按钮设置为可见。

我怎样才能做到这一点?我尝试搜索相同但无济于事。

编辑:

这是显示 RecyclerView 的 Schedule Fragment 中的项目代码。

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);
}
}

这是ScheduleAdapter中的ViewHolder类

    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);
}
}

这是 ScheduleAdapter 的 onBindViewHolder

    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
}
});
}

最佳答案

您可以在适配器中有一个字段,用于跟踪 RecyclerView 项目是否应设置为可见。然后在 onBindViewHolder 中,您可以根据它设置 View 的可见性。最后,在 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);
}
}

计划 fragment :

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_edit:
adapter.setShowAllViews(true);
return true;

default:
return super.onOptionsItemSelected(item);
}
}

关于android - 菜单项(状态栏)和 RecyclerView 项之间的交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45206334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com