如何发送一个";“列表视图”;对a的价值;“回收视图”;拯救他们。I';我用的是Android Studio,用的是JAVA?
这就是我在“第二个活动”中列出的内容如何发送一个";“列表视图”;对a的价值;“回收视图”;拯救他们。I';我用的是Android Studio,用的是JAVA?,java,android,bluetooth-lowenergy,Java,Android,Bluetooth Lowenergy,这就是我在“第二个活动”中列出的内容 private void setList(){ ArrayList aBleAvailable=新的ArrayList(); 如果(ble.getListDevices().size()>0){ 对于(int i=0;i{ 蓝牙项目值=(蓝牙)列表。getItemAtPosition(位置); connect(itemValue.getDevice(),bleCallbacks()); }); }否则{ dAlert=setDialogInfo(“Ups”,
private void setList(){
ArrayList aBleAvailable=新的ArrayList();
如果(ble.getListDevices().size()>0){
对于(int i=0;i{
蓝牙项目值=(蓝牙)列表。getItemAtPosition(位置);
connect(itemValue.getDevice(),bleCallbacks());
});
}否则{
dAlert=setDialogInfo(“Ups”,“我们找不到活动设备”,true);
dAlert.show();
完成();
}
}
我想移动单击的值以创建“MainActivity”中的RecicleView。
Thx.我认为您正在尝试在扫描活动中列出蓝牙设备,然后当用户从
列表视图中选择一个设备时,您希望将其发送回主活动
如果是这种情况,那么您需要修改main活动
,而不是使用startActivity()
方法启动SecondActivity
,您必须使用startActivityForResult()
在用户选择其设备进行连接时返回结果
MainActivity.java
int蓝牙设备请求=1
意向i=新意向(此,SecondActivity.class);
startActivityForResult(i,蓝牙设备请求);
然后在您的SecondActivity
中,我们有两种情况,要么用户选择设备,要么不选择。所以,如果他选择了一个设备,你可以像这样把它发回
SecondActivity.java
Intent Intent=新Intent();
意向。额外(“结果”,结果);
setResult(活动。结果\u正常,意图);
完成();
如果您需要中止操作并不发回任何信息,可以通过这种方式执行
SecondActivity.java
Intent Intent=新Intent();
setResult(Activity.RESULT\u已取消,意图);
完成();
之后,您可以使用onActivityResult()
回调在main活动中观察结果
MainActivity.java
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==蓝牙设备请求){
if(resultCode==Activity.RESULT\u确定){
字符串结果=data.getStringExtra(“结果”);
//你喜欢怎么用就怎么用
}
if(resultCode==Activity.RESULT\u已取消){
//如果没有结果,请编写代码
}
}
}
private void setList(){
ArrayList<BluetoothLE> aBleAvailable = new ArrayList<>();
if(ble.getListDevices().size() > 0){
for (int i=0; i<ble.getListDevices().size(); i++) {
aBleAvailable.add(new BluetoothLE(ble.getListDevices().get(i).getName(), ble.getListDevices().get(i).getMacAddress(), ble.getListDevices().get(i).getRssi(), ble.getListDevices().get(i).getDevice()));
}
BasicList mAdapter = new BasicList(this, R.layout.simple_row_list, aBleAvailable) {
@Override
public void onItem(Object item, View view, int position) {
TextView txtName = view.findViewById(R.id.txtText);
String aux = ((BluetoothLE) item).getName() + " " + ((BluetoothLE) item).getMacAddress();
txtName.setText(aux);
}
};
listBle.setAdapter(mAdapter);
listBle.setOnItemClickListener((parent, view, position, id) -> {
BluetoothLE itemValue = (BluetoothLE) listBle.getItemAtPosition(position);
ble.connect(itemValue.getDevice(), bleCallbacks());
});
}else{
dAlert = setDialogInfo("Ups", "We do not find active devices", true);
dAlert.show();
finish();
}
}