【问题标题】:How to retrieve a value from list in retrofit如何在改造中从列表中检索值
【发布时间】:2021-06-09 02:57:42
【问题描述】:

这是我的模块

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;
    }

这里是我的休息服务课

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);

这里是我的主要活动课

        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)"

提前致谢,我还是个改装新手

【问题讨论】:

    标签: java android retrofit


    【解决方案1】:

    因为String.valueOf(spsOnHands.get(0)) 整个列表项都转换为字符串,所以这就是为什么你得到错误的文本格式。

    使用以下代码在 textview 中设置文本:

     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);
    

    您可以根据自己的需要更改textview中的文本格式。

    【讨论】:

      【解决方案2】:

      在您的情况下,您会收到ArrayList。如果您想从List 获取项目,那么您必须通过index 并获得价值List,如下所示。它会为您提供ITEM_DESCRIPTIONList 的第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();
      
                      }
                  });
      

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 2021-07-02
        • 2020-04-11
        • 2021-08-02
        • 2018-06-13
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        相关资源
        最近更新 更多