在Android Studio的项目视图中,右键点击“app”文件夹并选择“New”>“Java class”。
在“Class name”输入框中输入“LeDeviceListAdapter”并选择“Kind”为“Class”。
在“Package name”输入框中输入您的项目包名。
单击“Finish”按钮以生成新类。
在新生成的类中,复制以下代码:
public class LeDeviceListAdapter extends BaseAdapter {
private ArrayList mLeDevices;
private LayoutInflater mInflator;
public LeDeviceListAdapter(Context context) {
super();
mLeDevices = new ArrayList();
mInflator = LayoutInflater.from(context);
}
public void addDevice(BluetoothDevice device) {
if(!mLeDevices.contains(device)) {
mLeDevices.add(device);
}
}
public BluetoothDevice getDevice(int position) {
return mLeDevices.get(position);
}
public void clear() {
mLeDevices.clear();
}
@Override
public int getCount() {
return mLeDevices.size();
}
@Override
public Object getItem(int i) {
return mLeDevices.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder;
// General ListView optimization code.
if (view == null) {
view = mInflator.inflate(R.layout.listitem_device, null);
viewHolder = new ViewHolder();
viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address);
viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
BluetoothDevice device = mLeDevices.get(i);
final String deviceName = device.getName();
if (deviceName != null && deviceName.length() > 0)
viewHolder.deviceName.setText(deviceName);
else
viewHolder.deviceName.setText(R.string.unknown_device);
viewHolder.deviceAddress.setText(device.getAddress());
return view;
}
static class ViewHolder {
TextView deviceName;
TextView deviceAddress;
}
}
在您的BLE项目中,导入新的“LeDeviceListAdapter”类以使用。
您现在可以使用该类来管理BLE设备列表。在您的Activity或Fragment中创建一个新的LeDeviceListAdapter实例,并在扫描到新设备时调用addDevice()方法以添加设备