如何在改造中从列表中检索值
How to retrieve a value from list in retrofit
这是我的模块
public class SPSOnHand {
@SerializedName("ITEM_CODE")
@Expose
private String ITEM_CODE;
@SerializedName("ITEM_DESCRIPTION")
@Expose
private String ITEM_DESCRIPTION;
public String getITEM_CODE() {
return ITEM_CODE;
}
public void setITEM_CODE(String item_code) {
ITEM_CODE = item_code;
}
public String getITEM_DESCRIPTION() {
return ITEM_DESCRIPTION;
}
public void setITEM_DESCRIPTION(String item_description) {
ITEM_DESCRIPTION = item_description;
}
这是我的休息服务class
public class RestService {
private static final String URL = "http://localhost:58364/";
private retrofit.RestAdapter restAdapter;
//private InstituteService apiService;
private SPInventoryService apiService;
public RestService()
{
restAdapter = new retrofit.RestAdapter.Builder()
.setEndpoint(URL)
.setLogLevel(retrofit.RestAdapter.LogLevel.FULL)
.build();
apiService = restAdapter.create(SPInventoryService.class);
}
public SPInventoryService getService()
{
return apiService;
}
这是我的服务
@GET("/api/SPSOnHand/itemcode/{item_code}")
public void getItemCode(@Path("item_code") String itemcode,
Callback<ArrayList<SPSOnHand>>callback);
这里是我的主要activityclass
String itemcode;
Intent intent = getIntent();
itemcode =intent.getStringExtra("itemcode");
restService.getService().getItemCode(itemcode, new Callback<ArrayList<SPSOnHand>>() {
@Override
public void success(ArrayList<SPSOnHand> spsOnHands, Response response) {
item_description.setText(String.valueOf(spsOnHands.get(0)));
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(AirJet.this, error.getMessage().toString(),
Toast.LENGTH_LONG).show();
}
});
我希望 item_description 包含这样的词
"ID": 167,
"ITEM_CODE": "3020240002",
"ITEM_DESCRIPTION": "CONTROLLER LME22.331c2 (CONTROL BOX)"
在此先感谢,我还是改造的新手
在您的情况下,您会收到 ArrayList
。如果你想从 List
中获取项目,那么你必须传递 index
并获取值 List
,如下所示。它会给你 ITEM_DESCRIPTION
作为你 List
.
的第 0 个索引
restService.getService().getItemCode(itemcode, new Callback<ArrayList<SPSOnHand>>() {
@Override
public void success(ArrayList<SPSOnHand> spsOnHands, Response response) {
item_description.setText(String.valueOf(spsOnHands.get(0).ITEM_DESCRIPTION));
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(AirJet.this, error.getMessage().toString(),
Toast.LENGTH_LONG).show();
}
});
因为 String.valueOf(spsOnHands.get(0))
列表的整个项目都转换为字符串,所以这就是您得到错误文本格式的原因。
使用以下代码在文本视图中设置文本:
int id = 0+1;
String itemCode = arrayList.get(0).getITEM_CODE();
String itemDescription = arrayList.get(0).getITEM_CODE();
item_description.setText("\"ID\":"+ id+" \n\"ITEM_CODE\":" + itemCode+" \n\"ITEM_DESCRIPTION\":"+itemDescription);
您可以根据需要更改文本视图中的文本格式。
这是我的模块
public class SPSOnHand {
@SerializedName("ITEM_CODE")
@Expose
private String ITEM_CODE;
@SerializedName("ITEM_DESCRIPTION")
@Expose
private String ITEM_DESCRIPTION;
public String getITEM_CODE() {
return ITEM_CODE;
}
public void setITEM_CODE(String item_code) {
ITEM_CODE = item_code;
}
public String getITEM_DESCRIPTION() {
return ITEM_DESCRIPTION;
}
public void setITEM_DESCRIPTION(String item_description) {
ITEM_DESCRIPTION = item_description;
}
这是我的休息服务class
public class RestService {
private static final String URL = "http://localhost:58364/";
private retrofit.RestAdapter restAdapter;
//private InstituteService apiService;
private SPInventoryService apiService;
public RestService()
{
restAdapter = new retrofit.RestAdapter.Builder()
.setEndpoint(URL)
.setLogLevel(retrofit.RestAdapter.LogLevel.FULL)
.build();
apiService = restAdapter.create(SPInventoryService.class);
}
public SPInventoryService getService()
{
return apiService;
}
这是我的服务
@GET("/api/SPSOnHand/itemcode/{item_code}")
public void getItemCode(@Path("item_code") String itemcode,
Callback<ArrayList<SPSOnHand>>callback);
这里是我的主要activityclass
String itemcode;
Intent intent = getIntent();
itemcode =intent.getStringExtra("itemcode");
restService.getService().getItemCode(itemcode, new Callback<ArrayList<SPSOnHand>>() {
@Override
public void success(ArrayList<SPSOnHand> spsOnHands, Response response) {
item_description.setText(String.valueOf(spsOnHands.get(0)));
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(AirJet.this, error.getMessage().toString(),
Toast.LENGTH_LONG).show();
}
});
我希望 item_description 包含这样的词
"ID": 167,
"ITEM_CODE": "3020240002",
"ITEM_DESCRIPTION": "CONTROLLER LME22.331c2 (CONTROL BOX)"
在此先感谢,我还是改造的新手
在您的情况下,您会收到 ArrayList
。如果你想从 List
中获取项目,那么你必须传递 index
并获取值 List
,如下所示。它会给你 ITEM_DESCRIPTION
作为你 List
.
restService.getService().getItemCode(itemcode, new Callback<ArrayList<SPSOnHand>>() {
@Override
public void success(ArrayList<SPSOnHand> spsOnHands, Response response) {
item_description.setText(String.valueOf(spsOnHands.get(0).ITEM_DESCRIPTION));
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(AirJet.this, error.getMessage().toString(),
Toast.LENGTH_LONG).show();
}
});
因为 String.valueOf(spsOnHands.get(0))
列表的整个项目都转换为字符串,所以这就是您得到错误文本格式的原因。
使用以下代码在文本视图中设置文本:
int id = 0+1;
String itemCode = arrayList.get(0).getITEM_CODE();
String itemDescription = arrayList.get(0).getITEM_CODE();
item_description.setText("\"ID\":"+ id+" \n\"ITEM_CODE\":" + itemCode+" \n\"ITEM_DESCRIPTION\":"+itemDescription);
您可以根据需要更改文本视图中的文本格式。