public
class
ListViewAdapter
extends
BaseAdapter {
private
final
List<DlgAprInfo> aprList;
public
ListViewAdapter(List<DlgAprInfo> aprList) {
this
.aprList = aprList;
}
@Override
public
int
getCount() {
return
aprList.size();
}
@Override
public
Object getItem(
int
position) {
return
aprList.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
Context context = parent.getContext();
final
DlgAprInfo aprInfo = aprList.get(position);
TextView textAprName =
null
;
TextView textApr =
null
;
AprItemHolder holder =
null
;
if
(convertView ==
null
) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.apr_item_view, parent,
false
);
textAprName = convertView.findViewById(R.id.text_apr_name);
textApr = convertView.findViewById(R.id.text_apr);
holder =
new
AprItemHolder();
holder.textAprName = textAprName;
holder.textApr = textApr;
convertView.setTag(holder);
}
else
{
holder = (AprItemHolder) convertView.getTag();
textAprName = holder.textAprName;
textApr = holder.textApr;
}
textAprName.setText(aprInfo.getName());
textApr.setText(aprInfo.getDescription());
convertView.setOnClickListener(v -> {
System.out.println(
"============ ItemClicked!!!"
);
});
return
convertView;
}
private
class
AprItemHolder {
public
TextView textAprName;
public
TextView textApr;
}
}
class
KListAdapter(
private
val aprList: List<DlgAprInfo>) : BaseAdapter() {
override fun getCount(): Int = aprList.size
override fun getItem(position: Int): DlgAprInfo = aprList[position]
override fun getItemId(position: Int): Long = position.toLong()
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val aprInfo = getItem(position)
val holderView = convertView ?: LayoutInflater.from(parent.context)
.inflate(R.layout.apr_item_view, parent,
false
)
val itemHolder =
if
(holderView.tag ==
null
) {
KAprItemHolder(holderView).also {
holderView.tag = it
}
}
else
{
holderView.tag as KAprItemHolder
}
itemHolder.bind(aprInfo)
holderView.setOnClickListener {
println(
"========== ItemClicked!!!"
)
}
return
holderView
}
}
data
class
KAprItemHolder(val itemView: View) {
private
val textAprName: TextView = itemView.findViewById(R.id.text_apr_name)
private
val textApr: TextView = itemView.findViewById(R.id.text_apr)
fun bind(aprInfo: DlgAprInfo) {
textAprName.text = aprInfo.name
textApr.text = aprInfo.description
}
}