FileRvAdapter.java
4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package com.sw.laryngoscope.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.sw.laryngoscope.R;
import com.sw.laryngoscope.db.FileInfoMonthBean;
import com.sw.laryngoscope.widget.CustomListView;
import java.util.List;
public class FileRvAdapter extends RecyclerView.Adapter<FileRvAdapter.ViewHolder> {
private Context mContext;
private OnItemClickLitener listener;//点击事件接口
private List<FileInfoMonthBean> fileList;
private ViewHolder viewHolder;
private View view;
/**
* 在构造方法中传入图片地址的数据
* @param context
* @param list
*/
public FileRvAdapter(Context context, List<FileInfoMonthBean> list) {
this.mContext = context;
this.fileList = list;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
view = LayoutInflater.from(mContext).inflate(R.layout.rv_item_file, null);
viewHolder = new ViewHolder(view);
return viewHolder;
}
public void setBeanList(List<FileInfoMonthBean> list) {
this.fileList = list;
}
FileItemAdapter mFileItemAdapter;
@Override
public void onBindViewHolder(ViewHolder holder, @SuppressLint("RecyclerView") int position) {
//FileInfoBean temp = fileList.get( fileList.size() - position -1 );
FileInfoMonthBean temp = fileList.get( position );
holder.txt_title.setText(temp.getRvName());
setListViewHeightBasedOnChildren(holder.item_ls_file);
mFileItemAdapter = new FileItemAdapter(mContext, temp.getFileItemList(), position, this);
holder.item_ls_file.setAdapter(mFileItemAdapter);
//Logger.d(" getView position " + position + " onBindViewHolder " + temp.getFileItemList().size());
mFileItemAdapter.notifyDataSetChanged();
}
@Override
public int getItemCount() {
return fileList.size();
}
public OnItemClickLitener getListener() {
return listener;
}
public void setOnItemClickLitener(OnItemClickLitener listener) {
this.listener = listener;
}
public interface OnItemClickLitener {
void onSubItemsFileClick(int position, int subitemspos, String listMdItemName);
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView txt_title;
CustomListView item_ls_file;
public ViewHolder(View itemView) {
super(itemView);
txt_title = (TextView) itemView.findViewById(R.id.txt_title);
item_ls_file = (CustomListView) itemView.findViewById(R.id.item_ls_file);
/*item_ls_file.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//int position = (Integer) v.getTag();
//listener.onItemClick(getPosition());
}
});*/
}
}
private void setListViewHeightBasedOnChildren(ListView listView) {
if (listView == null) {
return;
}
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
/*listView_user.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick (AdapterView<?> parent, View view, int position, long id ) {
if ( position == 0 ) {
return ;
}
}
});*/
}