- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我会稍微解释一下我的问题。在我的回收站 View 布局中有一个复选框,它在开始时是不可见的。当我点击回收站 View 中的一个项目时,我希望所有项目中的 checkbox 都可见。我在互联网上搜索了太久,找不到解决我的问题的方法。
public class ViewInventoryListAdapter extends RecyclerView.Adapter<ViewInventoryListAdapter.ListViewHolder> {
private Context context;
List<ViewAllInventoryDevicesDetails> list;
private Button assignButton;
private UserLoginResponseModel userLoginResponseModel;
private android.support.v4.app.Fragment fragment;
private FragmentManager fragmentManager;
private FragmentActivity myContext;
private Activity activity;
private int counter = 0;
private List<String> selectedDeviceSerialNumbers;
private static CheckBox checkBox;
public ViewInventoryListAdapter(Context context, List<ViewAllInventoryDevicesDetails> list, Button assign, UserLoginResponseModel model, Activity activity ) {
this.context = context;
this.list = list;
this.assignButton = assign;
this.userLoginResponseModel = model;
this.activity =activity;
}
@NonNull
@Override
public ListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.view_all_inventory_listlayout_cardview,null);
//Specifying Activity for Fragment Transaction
activity = activity;
myContext = (FragmentActivity) activity;
//Iniallizing Fragment Manager
fragmentManager = myContext.getSupportFragmentManager();
selectedDeviceSerialNumbers = new ArrayList<>();
checkBox = view.findViewById(R.id.view_inventory_checkbox);
return new ViewInventoryListAdapter.ListViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ListViewHolder holder, final int position) {
Typeface iconFont = FontManager.getTypeface(context, FontManager.FONTAWESOME);
holder.deviceSerialNumber.setText(list.get(position).getSerialNumber());
holder.deviceType.setText(list.get(position).getDeviceType());
FontManager.markAsIconContainer(holder.deviceIcon, iconFont);
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
holder.isSelected.setVisibility(View.VISIBLE);
//holder.isSelected.setVisibility(View.VISIBLE);
holder.isSelected.setChecked(true);
assignButton.setVisibility(View.VISIBLE);
return false;
}
});
holder.isSelected.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.isSelected.setChecked(false);
holder.isSelected.setVisibility(View.INVISIBLE);
//Login For Visibility For assign Button
counter--;
selectedDeviceSerialNumbers.remove(list.get(position).getSerialNumber());
if(counter == 0){
assignButton.setVisibility(View.GONE);
}
}
});
assignButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bundle bundle = new Bundle();
if(userLoginResponseModel != null){
bundle.putSerializable("UserModel", userLoginResponseModel);
bundle.putSerializable("serialNumbers", (Serializable) selectedDeviceSerialNumbers);
}
fragment = new AssingSelectedDevicesFragment();
fragment.setArguments(bundle);
fragmentManager.beginTransaction()
.replace(R.id.flContent, fragment)
.commit();
}
});
}
@Override
public int getItemCount() {
return list.size();
}
class ListViewHolder extends RecyclerView.ViewHolder{
private TextView deviceType, deviceSerialNumber, deviceIcon;
private CheckBox isSelected;
public ListViewHolder(View itemView){
super(itemView);
deviceType = itemView.findViewById(R.id.view_inventory_deviceType_textview);
deviceSerialNumber = itemView.findViewById(R.id.view_inventory_serialNumber_textview);
deviceIcon = itemView.findViewById(R.id.view_inventory_image_textview);
isSelected = itemView.findViewById(R.id.view_inventory_checkbox);
}
}
}
这是我的 OnBindViewHolder 文本。我可以通过单独单击项目来更改复选框的可见性。我只想让它在单击时更改所有项目。就像我们手机中的联系人列表一样。您只需长按项目,复选框就会出现在所有项目中。任何帮助,将不胜感激。最好的问候
最佳答案
我就是这样做的:
向您的 ViewAllInventoryDevicesDetails
类添加一个新字段:
public boolean showCheckbox = false;
向您的适配器添加一些辅助方法:
private void showAllBoxes() {
for (ViewAllInventoryDevicesDetails item : list) {
item.showCheckbox = true;
}
notifyDataSetChanged();
}
private void hideAllBoxes() {
for (ViewAllInventoryDevicesDetails item : list) {
item.showCheckbox = false;
}
notifyDataSetChanged();
}
然后,在您的 onBindViewHolder()
方法中,使用该标志:
@Override
public void onBindViewHolder(@NonNull final ListViewHolder holder, final int position) {
ViewAllInventoryDevicesDetails item = list.get(position);
holder.isSelected.setVisibility(item.showCheckbox ? View.VISIBLE : View.GONE);
}
当你想显示它们时,你只需要调用 showAllBoxes()
和再次隐藏它们时调用 hideAllBoxes()
。
关于android - 单击单个项目选择回收站 View 中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52222445/
@ 目录 原理 创建过滤器 使用过滤器 查询 删除 恢复
我在回收站 View 中使用了一个 item.xml,但文本超出了屏幕。我试图依靠这个 answer , You can avoid all of this by giving each textvi
我的应用程序中有一个回收站 View 。每个回收器 View 项都有一个 imageView。我使用 asyncTask 加载位图并将它们添加到磁盘缓存,然后再将它们设置到 onPostExecute
我已经多次问过这个类似的问题,我花了 2 周多的时间才试图找出解决方案。是的,我知道有多个类似的问题,但我问的原因是因为堆栈上流的解决方案都不起作用。我是 Android 开发的初学者,因此我问你请帮
有谁知道允许特定角色的用户查看 Sitecore 回收站中所有项目的解决方案? 目前,只有管理员可以查看所有已删除的项目。用户只能看到他们已删除的项目。 最佳答案 没有开箱即用的方法,SqlArchi
您好,我有以下回收器适配器: package com.example.app.adapters; import android.annotation.TargetApi; import android
我看不到回收 View ,不确定哪里出了问题。如果你能帮助我,那就太好了。 fragment public class CallDurationFragment extends Fragment {
我是 android 开发的新手。我有一个带有 Viewholder 的 recyclerview 用于显示照片。我在我的应用程序中实现了 like 功能,但我面临的唯一问题是当我添加一个 喜欢 在照
我正在编写一个消息传递应用程序,在 RecyclerView 中显示我的消息和其他消息。 白色背景消息是我的消息,彩色消息是其他消息。 当每条消息顺序为“我的消息,其他消息,...”时,回收站 Vie
我创建了一个包含不同类型 subview 的社交帖子回收 View 。每个 child 多个 layout.recyclerview 工作正常,唯一的问题是 recyclerview 滚动不流畅。 我
我有一个像这样的 View 模型 - private val viewState = SchoolsViewState() fun onViewOpened() = Trans
我正在研究 Android 的应用程序接近完成它但我在 recyclerView 中发现了问题,我不知道如何在 recyclerView 的 Item 的 TextView 上实现点击监听器? (当我
我正在做一个 RecyclerView 示例。问题是,当我在列表中添加第一个项目时,它会在回收 View 中正确显示该项目,但我添加的下一个项目不会显示在回收 View 中。 请帮帮我。 适配器代码是
我想问一下我如何从适配器回收器 View 调用 Activity 中的方法。 在函数 buildRecyclerView 中设置适配器: private void buildRecyclerView(
这个问题在这里已经有了答案: Custom Adapter getView() method is not called (6 个答案) 关闭 6 年前。 我正在使用回收站 View ,但它没有显示
我有一个回收站 View ,我在其中显示了自定义行,但该行未填满宽度。我已经添加了 match_parent 宽度,但它仍然只是包装内容。 我的回收站 View -:
我一直在使用回收器 View 在我的 fragment 上显示 15 张图像。图像位于可绘制文件夹中。我尝试了外部 View 来执行此操作,但速度要慢得多并且滞后很多。因此我使用回收者 View 来解
我的问题是我希望回收站 View 响应对整个 View 的点击,而不是对回收站 View 具有的每个项目的单独点击 viewModel.handleClick()}"
以下是我的行项目的布局:
我正在处理 Recycler View ,在这里我将三个回收器 View 水平放置在布局中。问题是第二个和第三个回收器 View 项目显示但无法滚动,即使在内部使用嵌套滚动并特此附加xml。请建议我如
我是一名优秀的程序员,十分优秀!