cctv 请教下,捣鼓了一个设备列表,使用完后是否需要删除或者关闭操作?
设备列表:
/**
* 设备列表的adapter
*/
private class MyListAdapter extends BaseAdapter {
public MyListAdapter() {
}
@Override
public int getCount() {
return deviceList.size();
}
@Override
public Object getItem(int position) {
return deviceList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = getActivity().getLayoutInflater().inflate(R.layout.layout_item_bt_device, parent, false);
viewHolder = new ViewHolder();
viewHolder.deviceName = (TextView) convertView.findViewById(R.id.device_name);
viewHolder.deviceMac = (TextView) convertView.findViewById(R.id.device_mac);
viewHolder.deviceState = (TextView) convertView.findViewById(R.id.device_state);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
int code = deviceList.get(position).getBondState();
String name = deviceList.get(position).getName();
String mac = deviceList.get(position).getAddress();
String state;
if (name == null || name.length() == 0) {
name = "未命名设备";
}
if (code == BluetoothDevice.BOND_BONDED) {
state = "ready";
viewHolder.deviceState.setTextColor(getResources().getColor(R.color.green));
} else {
state = "new";
viewHolder.deviceState.setTextColor(getResources().getColor(R.color.red));
}
if (mac == null || mac.length() == 0) {
mac = "未知 mac 地址";
}
viewHolder.deviceName.setText(name);
viewHolder.deviceMac.setText(mac);
viewHolder.deviceState.setText(state);
return convertView;
}
}
系统每次启动时都会进行
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
listView = (ListView) view.findViewById(R.id.device_list_view);
listAdapter = new MyListAdapter();
listView.setAdapter(listAdapter);
listAdapter.notifyDataSetChanged();
}
工作完成后,点击了 断开按钮
public void bluetoothDisconnect() {
if (listAdapter != null) {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
listAdapter.notifyDataSetChanged(); //使用这句后,貌似 android 会出现工作异常提示 ??? 如果不使用这句貌似就没有问题,请教下,这个该如何解决啊 ?????????
// }
listAdapter = null;
Log.d(TAG, "断开连接 listAdapter" );
}
toast("程序关闭");
}