Java 改造安卓系统获得响应
我刚开始学习ROS和改装。有谁能帮助我或者指出它导致我这个错误的原因吗,基本上我想在硬件json下获取名称和状态。我不确定我的错误是否来自POJO模型Java 改造安卓系统获得响应,java,android,api,retrofit,Java,Android,Api,Retrofit,我刚开始学习ROS和改装。有谁能帮助我或者指出它导致我这个错误的原因吗,基本上我想在硬件json下获取名称和状态。我不确定我的错误是否来自POJO模型 在您的ObjectList`中,创建一个getter以从硬件数组中获取字符串: public String getHardwareString() { String result = ""; for (int i=0; i<hardware.length; i++) { Object item = hardw
在您的
ObjectList`中,创建一个getter以从硬件数组中获取字符串:
public String getHardwareString() {
String result = "";
for (int i=0; i<hardware.length; i++) {
Object item = hardware[i];
result += item.name
}
return result;
}
在您的
ObjectList`中,创建一个getter以从硬件数组中获取字符串:
public String getHardwareString() {
String result = "";
for (int i=0; i<hardware.length; i++) {
Object item = hardware[i];
result += item.name
}
return result;
}
E/main操作:response com.nera.rosbridgeclient.messages.robot_msgs。ObjectList@cea25bf
硬件[Lcom.nera.rosbridgeclient.messages.robot\u msgs.Object;@7ec748c
这不是错误/异常
,而是您的日志消息
Log.e(“mainAction”、“hardware”+response.body().getHardware().toString());
上面的一行生成错误日志
原因:
response.body().getHardware()`
上行将返回一个硬件的数组。表示硬件数组的实例/对象
因此,当您将toString()
用于实例/对象时
response.body().getHardware().toString()
它将把实例
作为字符串
提供给您
解决方案:
您将得到一个数组
的硬件
作为响应
@Override
public void onResponse(Call<ObjectList> call, Response<ObjectList> response) {
StringBuilder sb = new StringBuilder(); // add this line
for(int i=0; i<response.body().getHardware().length; i++){
Log.e(" mainAction", " hardware"+ response.body().getHardware()[i].name);
sb.append(response.body().getHardware()[i].name)); // here we append each hardware name to our string builder.
sb.append(" "); // here we append a space separator after every hardware name, you can use whatever you want(like: newline[\n] or coma[,]).
}
textviewhardware.setText(sb.toString()); // now textview will show every hardware name.
}
@覆盖
公共void onResponse(调用、响应){
StringBuilder sb=新建StringBuilder();//添加此行
对于(int i=0;i
E/main操作:response com.nera.rosbridgeclient.messages.robot_msgs。ObjectList@cea25bf
硬件[Lcom.nera.rosbridgeclient.messages.robot\u msgs.Object;@7ec748c
这不是错误/异常
,而是您的日志消息
Log.e(“mainAction”、“hardware”+response.body().getHardware().toString());
上面的一行生成错误日志
原因:
response.body().getHardware()`
上行将返回一个硬件的数组。表示硬件数组的实例/对象
因此,当您将toString()
用于实例/对象时
response.body().getHardware().toString()
它将把实例
作为字符串
提供给您
解决方案:
您将得到一个数组
的硬件
作为响应
@Override
public void onResponse(Call<ObjectList> call, Response<ObjectList> response) {
StringBuilder sb = new StringBuilder(); // add this line
for(int i=0; i<response.body().getHardware().length; i++){
Log.e(" mainAction", " hardware"+ response.body().getHardware()[i].name);
sb.append(response.body().getHardware()[i].name)); // here we append each hardware name to our string builder.
sb.append(" "); // here we append a space separator after every hardware name, you can use whatever you want(like: newline[\n] or coma[,]).
}
textviewhardware.setText(sb.toString()); // now textview will show every hardware name.
}
@覆盖
公共void onResponse(调用、响应){
StringBuilder sb=新建StringBuilder();//添加此行
对于(int i=0;iYou应该发布完整的错误日志,而不是仅发布两行错误日志。)it@DuyKhanhNguyen这是我的logcat中显示的唯一错误。其他错误与我的设备的运行系统有关。是否可以尝试重命名模型?对象是java中已定义的名称,因此可能会导致错误导入。@DuyKhanhNguyen我尝试过已经但仍然不走运。我认为错误来自这个命令Log.e(“mainAction”,“hardware”+response.body().getHardware().toString());
。这不是一个真正的错误。您应该发布完整的错误日志,而不是仅仅发布两行错误日志it@DuyKhanhNguyen这是我的logcat中显示的唯一错误。其他错误与我的设备的运行系统有关。是否可以尝试重命名模型?对象是java中已定义的名称,因此可能导致错误导入。@DuyKhanhNguyen我已经试过了,但仍然没有成功。我认为错误来自于这个命令Log.e(“main操作”,“硬件”+response.body().getHardware().toString());
。这不是一个真正的错误。如果我想在一个代码中显示它们,而不是逐个声明它们呢。在这行代码中:textviewhardware.setText(response.body()).getHardware()[0].name);@YenBico查看我更新的答案(最后一部分是解决方案部分)。如果这个答案对您有帮助,请不要忘记投票。快乐编码。。如果我想在一个代码中显示它们,而不是逐个声明它们,该怎么办。在这行代码中:textviewhardware.setText(response.body().getHardware()[0].name);@YenBico查看我更新的答案(最后一部分是解决方案部分)。如果这个答案对您有帮助,请不要忘记投票。快乐编码
。