来自https://developer.android.com/preview/material/ui-widgets.html
当我们创建时,RecyclerView.Adapter我们必须指定ViewHolder将与适配器绑定.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mDataset;
public MyAdapter(String[] myDataset) {
mDataset = myDataset;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(TextView v) {
super(v);
mTextView = v;
}
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.some_layout, parent, false);
//findViewById...
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.mTextView.setText(mDataset[position]);
}
@Override
public int …Run Code Online (Sandbox Code Playgroud) 我希望为我的地址簿应用程序实现一个排序功能.
我想要排序ArrayList<Contact> contactArray.Contact是一个包含四个字段的类:姓名,家庭电话号码,手机号码和地址.我想要排序name.
如何编写自定义排序功能来执行此操作?
我想在列表中实现部分.我有一份任务清单.List有一个自定义适配器,它扩展了recyclerview刷卡适配器,因为我已经实现了向recyclerview的滑动手势.
因此,现在任务列表与已完成和待处理任务一起显示.每个列表项都有一个复选框,显示任务已完成或待处理.
如果选中复选框,则任务完成,反之亦然.现在我想用标题创建两个部分.一个用于已完成的任务,另一个用于待处理任
所以完成的任务应该显示在已完成的部分内,反之亦然.此外,如果任务未经检查,即待处理,如果用户选中复选框,则该项目应从待处理部分中删除,并应添加到已完成的部分,反之亦然.
我检查了一个库的部分.
https://github.com/afollestad/sectioned-recyclerview
但是当我尝试实现库时,我得到了错误,即适配器无法扩展两个类,因为之前我已经扩展了recyclerview swipe库.
适配器:
public class IAdapter extends RecyclerSwipeAdapter<IAdapter.ItemViewHolder> {
public ArrayList<Task> items;
Context conext;
public int _mId;
List<Task> itemsPendingRemoval = new ArrayList<>();
public IAdapter(Context context, ArrayList<Task> item) {
this.conext=context;
this.items=item;
}
@Override
public int getItemCount() {
return items.size();
}
public static class ItemViewHolder extends RecyclerView.ViewHolder {
Task task;
CheckBox cb;
SwipeLayout swipeLayout;
TaskTableHelper taskTableHelper;
ItemViewHolder(final View itemView) {
super(itemView);
taskTableHelper= new TaskTableHelper(itemView.getContext());
swipeLayout = (SwipeLayout) itemView.findViewById(R.id.swipe);
cb = (CheckBox) itemView.findViewById(R.id.checkbox);
}
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 我将使用RecyclerView作为节标题
我想在SQLite数据库中插入每个日期和时间数据时创建节头
我在下面的链接中找到了这个解决方案,但没有成功
请参考下图
对于使用以下代码的上述图像数据或部分是静态的:
List<Company> childList = new ArrayList<>();
List<CompanySectionHeader> sectionHeaders = new ArrayList<>();
childList = myDb.getAllCompany();
sectionHeaders.add(new CompanySectionHeader(childList, "WEDNESDAY 4 APRIL", 1));
Run Code Online (Sandbox Code Playgroud)
现在,如果我输入今天的数据,那么我创建1个截面日期
下面的图像数据部分标题是静态或数据:
上面的图像数据正在使用下面的代码:
childList.add(new Company("Ketul Inc.", "11/11/2017 3:46 PM"));
childList.add(new Company("Atmel Corporation", "09/19/2017 8:46 PM"));
childList.add(new Company("ABC Technologies", "09/12/2017 7:41 PM"));
childList.add(new Company("Huron Capital Partners LLC", "09/12/2017 7:25 PM"));
sectionHeaders = new ArrayList<>();
//Create a List of SectionHeader DataModel implements SectionHeader
sectionHeaders.add(new CompanySectionHeader(childList, "SATURDAY 7 APRIL", 2));
Run Code Online (Sandbox Code Playgroud)
以下代码是我的SectionHeader.Java:
public class CompanySectionHeader …Run Code Online (Sandbox Code Playgroud)