数据未在改造中显示 [英] data is not getting displayed in retrofit

查看:47
本文介绍了数据未在改造中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用改造来显示数据,但没有显示数据.我不知道我哪里出错了.在 logcat 中,我得到的响应为:

I using retrofit to display data but data is not getting displayed.i don't know where am I getting wrong.in logcat im getting response as:

2019-12-26 20:34:39.847 28305-28305/com.example.androidtutorial E/helloash:[com.example.androidtutorial.GetAheadFolder.JavaDatum@36ebcd9]

2019-12-26 20:34:39.847 28305-28305/com.example.androidtutorial E/helloash: [com.example.androidtutorial.GetAheadFolder.JavaDatum@36ebcd9]

我需要帮助..谢谢

GetAHeadModelsnext:

GetAHeadModelsnext:

public class GetAHeadModelsnext{

@SerializedName("id")
@Expose
private String id;
@SerializedName("title")
@Expose
private String title;
@SerializedName("java_data")
@Expose
private List<JavaDatum> java_data ;
@SerializedName("xml_data")
@Expose
private List<XmlDatum> xmlData;

public GetAHeadModelsnext(String id, String title, List<JavaDatum> java_data, List<XmlDatum> xmlData) {
    this.id = id;
    this.title = title;
    this.java_data = java_data;
    this.xmlData = xmlData;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public List<JavaDatum> getJavaData() {
    return java_data;
}

public void setJavaData(List<JavaDatum> javaData) {
    this.java_data = javaData;
}

public List<XmlDatum> getXmlData() {
    return xmlData;
}

public void setXmlData(List<XmlDatum> xmlData) {
    this.xmlData = xmlData;
}

子模型(列表JavaDatum):

public class JavaDatum {


@SerializedName("file_name")
@Expose
private String fileName;
@SerializedName("code")
@Expose
private String code;
public JavaDatum(String fileName, String code) {
    this.fileName = fileName;
    this.code = code;
}

public String getFileName() {
    return fileName;
}

public void setFileName(String fileName) {
    this.fileName = fileName;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}}

界面:

public interface DescriptService {
@GET("/v1/android_tutorials/single_advance?")
Call<GetAHeadModelsnext> getaheadjava(@Query("advance_id") String id);}

活动:

 @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    /*Create handle for the RetrofitInstance interface*/
    progressDialog = new ProgressDialog(getContext());
    progressDialog.setMessage("Loading....");
    progressDialog.show();
    Intent intent = getActivity().getIntent();

    String id = intent.getStringExtra("idGHnext");
    Log.e("ashwiniiii", String.valueOf(id));
    GetAheadApiService service = GetAheadApiClient.getRetrofitInstance().create(GetAheadApiService.class);
    Call<GetAHeadModelsnext> call = service.getaheadjava(id);
    call.enqueue(new Callback<GetAHeadModelsnext>() {
        @Override
        public void onResponse(Call<GetAHeadModelsnext> call, Response<GetAHeadModelsnext> response) {
            progressDialog.dismiss();

            List<JavaDatum> retro=response.body().getJavaData();
            generateDataList(retro);
            Log.e("helloash", String.valueOf(response.body().getJavaData()));
        }

        @Override
        public void onFailure(Call<GetAHeadModelsnext> call, Throwable t) {
            progressDialog.dismiss();

            Toast.makeText(getContext(), "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
        }
    });
}
private void generateDataList(List<JavaDatum> photoList) {
    recyclerView = getView().findViewById(R.id.nextGHrecycle);
    LinearLayoutManager manager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(manager);
    recyclerView.setHasFixedSize(true);
    adapter = new JavaGetAheadAdapter(getContext(),photoList);
    recyclerView.setAdapter(adapter);
}}

适配器:

public class JavaGetAheadAdapter extends RecyclerView.Adapter<JavaGetAheadAdapter.CustomViewHolder> {

List<JavaDatum> GHmdel;
Context context;

public JavaGetAheadAdapter(Context context,List<JavaDatum> employees) {
    this.GHmdel = employees;
    this.context = context;
}

@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.getaheadnext_item, parent, false);

    return new CustomViewHolder(itemView);
}

@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
    holder.employeeName.setText(GHmdel.get(position).getFileName());//
    holder.textView.setText(GHmdel.get(position).getCode());
    Log.d("adapter",GHmdel.get(position).getFileName());
    Log.d("adapter2",GHmdel.get(position).getCode());

}

@Override
public int getItemCount() {
    return GHmdel.size();
}

public class CustomViewHolder extends RecyclerView.ViewHolder {
    public TextView employeeName;
    TextView textView;

    public CustomViewHolder(View view) {
        super(view);
        employeeName = (TextView) view.findViewById(R.id.detailsgetaheadtitle);
       textView = view.findViewById(R.id.detailsgetahead);}}}

我的json:

{
"id": "1",
"title": "ViewPager and TabHost",
"java_data": [
    {
        "file_name": "ListDisplay.java",
        "code": "package com.example.ListDisplay;\r\n\r\nimport android.os.Bundle;\r\nimport android.app.Activity;\r\nimport android.view.Menu;\r\nimport android.widget.ArrayAdapter;\r\nimport android.widget.ListView;\r\n\r\npublic class ListDisplay extends Activity {\r\n   // Array of strings...\r\n   String[] mobileArray = {\"Android\",\"IPhone\",\"WindowsMobile\",\"Blackberry\",\r\n      \"WebOS\",\"Ubuntu\",\"Windows7\",\"Max OS X\"};\r\n   \r\n   @Override\r\n   protected void onCreate(Bundle savedInstanceState) {\r\n      super.onCreate(savedInstanceState);\r\n      setContentView(R.layout.activity_main);\r\n      \r\n      ArrayAdapter adapter = new ArrayAdapter<String>(this, \r\n         R.layout.activity_listview, mobileArray);\r\n      \r\n      ListView listView = (ListView) findViewById(R.id.mobile_list);\r\n      listView.setAdapter(adapter);\r\n   }\r\n}"
    }
],
"xml_data": [
    {
        "file_name": "activity_main.xml",
        "code": "<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n   xmlns:tools=\"http://schemas.android.com/tools\"\r\n   android:layout_width=\"match_parent\"\r\n   android:layout_height=\"match_parent\"\r\n   android:orientation=\"vertical\"\r\n   tools:context=\".ListActivity\" >\r\n\r\n   <ListView\r\n      android:id=\"@+id/mobile_list\"\r\n      android:layout_width=\"match_parent\"\r\n      android:layout_height=\"wrap_content\" >\r\n   </ListView>\r\n \r\n</LinearLayout>\r\nimport android.os.Bundle;\r\nimport android.app.Activity;\r\nimport android.view.Menu;\r\nimport android.widget.ArrayAdapter;\r\nimport android.widget.ListView;\r\n\r\npublic class ListDisplay extends Activity {\r\n   // Array of strings...\r\n   String[] mobileArray = {\"Android\",\"IPhone\",\"WindowsMobile\",\"Blackberry\",\r\n      \"WebOS\",\"Ubuntu\",\"Windows7\",\"Max OS X\"};\r\n   \r\n   @Override\r\n   protected void onCreate(Bundle savedInstanceState) {\r\n      super.onCreate(savedInstanceState);\r\n      setContentView(R.layout.activity_main);\r\n      \r\n      ArrayAdapter adapter = new ArrayAdapter<String>(this, \r\n         R.layout.activity_listview, mobileArray);\r\n      \r\n      ListView listView = (ListView) findViewById(R.id.mobile_list);\r\n      listView.setAdapter(adapter);\r\n   }\r\n}"
    },
    {
        "file_name": "strings.xml",
        "code": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<resources>\r\n   <string name=\"app_name\">ListDisplay</string>\r\n   <string name=\"action_settings\">Settings</string>\r\n</resources>"
    },
    {
        "file_name": "activity_listview.xml",
        "code": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<!--  Single List Item Design -->\r\n\r\n<TextView xmlns:android=\"http://schemas.android.com/apk/res/android\"\r\n   android:id=\"@+id/label\"\r\n   android:layout_width=\"fill_parent\"\r\n   android:layout_height=\"fill_parent\"\r\n   android:padding=\"10dip\"\r\n   android:textSize=\"16dip\"\r\n   android:textStyle=\"bold\" >\r\n</TextView>"
    }
]

}

推荐答案

可能是我遇到了问题.问题在这里 @GET("/v1/android_tutorials/single_advance?") 你有 ? 在你的 url 的末尾,你也有@Query("advance_id") 字段表示您的请求包含两个 ?.您当前的请求看起来像这样.

Might be i got the problem. Problem is here @GET("/v1/android_tutorials/single_advance?") you have? in the end of your url and you also have @Query("advance_id") field that mean your request contain two ?. you request currently look like this.

/v1/android_tutorials/single_advance??advance_id="xxxx"

还记得当您将 @Query("advance_id") 添加到您的请求时,默认情况下将 ? 添加到您的请求中.所以从你的 url 端删除 ? .您的网址应如下所示

Remember when you add @Query("advance_id") to your request this by default add ? to your your. So remove? from your url end. Your url should look like this

 @GET("/v1/android_tutorials/single_advance")

这篇关于数据未在改造中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆