import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.TextView;

import com.blankj.utilcode.util.ActivityUtils;
import com.hebccc.clustercom.R;
import com.hebccc.clustercom.type.CallStatusEvent;

import java.util.ArrayList;
import java.util.List;

public class TestAdap extends BaseAdapter {

private List<CallStatusEvent> datas;

public TestAdap() {
datas = new ArrayList<>();
// this.datas = datas;
}

public void setDatas(List<CallStatusEvent> datas) {
this.datas = datas;
}

@Override
public int getCount() {
return datas == null ? 0 : datas.size();
}

@Override
public CallStatusEvent getItem(int position) {
return datas.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
MHolder mHolder;
if (convertView == null) {
convertView = LayoutInflater.from(ActivityUtils.getTopActivity()).inflate(R.layout.view_test_lv_item, null);
mHolder = new MHolder(convertView);
convertView.setTag(mHolder);
} else {
mHolder = (MHolder) convertView.getTag();
}
mHolder.item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkItem(position);
}
});
mHolder.rb.setChecked(datas.get(position).isCheck());
mHolder.tv.setText(datas.get(position).getRemoteUdn());
// mHolder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// if (isChecked) {
// for (int i = 0; i < datas.size(); i++) {
// datas.get(i).setCheck(i == position);
// }
// }
// }
// });
return convertView;
}

public void checkItem(int which) {
if (datas != null) {
for (int i = 0; i < datas.size(); i++) {
datas.get(i).setCheck(i == which);
}
notifyDataSetChanged();
}
}

public CallStatusEvent getCheckedItem() {
if (datas != null && datas.size() > 0) {
for (int i = 0; i < datas.size(); i++) {
if (datas.get(i).isCheck()) {
return datas.get(i);
}
}
return datas.get(0);
}
return null;
}

public void removeItem(int which) {
if (datas != null) {
datas.remove(which);
notifyDataSetChanged();
}
}

private static class MHolder {
RadioButton rb;
TextView tv;
private final LinearLayout item;

public MHolder(View convertView) {
item = convertView.findViewById(R.id.test_lv_item);
rb = convertView.findViewById(R.id.test_lv_item_rb);
tv = convertView.findViewById(R.id.test_lv_item_tv_name);
}
}
}

view_test_lv_item

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/test_lv_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
tools:context=".ui.acty.TestActivity">

<RadioButton
android:id="@+id/test_lv_item_rb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:background="#00FFFFFF"
android:buttonTint="#0090a8"
android:clickable="false" />

<TextView
android:id="@+id/test_lv_item_tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:textColor="@color/black"
android:textSize="25sp"
tools:text="222222222222222222222" />
</LinearLayout>
private void m2() {

TestAdap testAdap = new TestAdap();
List<CallStatusEvent> datas = new ArrayList<>();
for (int i = 0; i < 5; i++) {
CallStatusEvent callStatusEvent = new CallStatusEvent();
callStatusEvent.setRemoteUdn("====" + i);
callStatusEvent.setCheck(i == 0);
datas.add(callStatusEvent);
}
testAdap.setDatas(datas);
new AlertDialog.Builder(this).setAdapter(testAdap, null)
.setNegativeButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MsgUtils.show("----=--=");
}
}).setPositiveButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MsgUtils.show("32432432");
}
}).create().show();
}

如果本文有帮到你,记得关注哦