【问题标题】:Android Studio Recyclerview use RetrofitAndroid Studio Recyclerview 使用 Retrofit
【发布时间】:2018-07-30 16:33:27
【问题描述】:

请帮帮我.. 我的 PHP 上有 10 个策略数据可以使用改造显示在 recyclerview android studio 上。但是,当我运行我的模拟器时,模拟器只显示 1 个数据。我的计划只显示 PolicyNo..当我运行模拟器并检查我的日志时,他们说:我收到的号码政策:10

对不起我的英语不好:(

这是我的政策活动:

 public class PolicyActivity extends AppCompatActivity {

    private static final String TAG = PolicyActivity.class.getSimpleName();
    private String policyno;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_policy);



        final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.policy_recycler_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));



        ApiEndPoint apiEndPoint =
                ApiClient.getClient(this).create(ApiEndPoint.class);

        Call<PolicyStatus> call = apiEndPoint.getPolicyNo(policyno);
        call.enqueue(new Callback<PolicyStatus>() {
            @Override
            public void onResponse(Call<PolicyStatus> call, Response<PolicyStatus> response) {
                List<PolicyNo> policyNo = response.body().getPolicyNo();
                Log.d(TAG, "Number Policy Received: " + policyNo.size());
                recyclerView.setAdapter(new PolicyAdapter(policyNo, R.layout.list_item_policy, getApplicationContext()));

            }


                @Override
                public void onFailure (Call <PolicyStatus> call, Throwable t){
                    Log.e(TAG, t.toString());
                }
            });
        }
    }

这是我的策略适配器:

 public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.PolicyViewHolder> {


    private List<PolicyNo> policyNo;
    private int rowLayout;
    private Context context;

    public static class PolicyViewHolder extends RecyclerView.ViewHolder{
        LinearLayout policyLayout;
        TextView nomorpolis;

        public PolicyViewHolder (View v){
            super(v);
            policyLayout = (LinearLayout) v.findViewById(R.id.policy_layout);
            nomorpolis = (TextView)v.findViewById(R.id.nomorpolis);
        }
    }
    public PolicyAdapter (List<PolicyNo>policyNo, int rowLayout, Context context){
        this.policyNo = policyNo;
        this.context = context;
        this.rowLayout = rowLayout;
    }
    @Override
    public PolicyAdapter.PolicyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
        View view= LayoutInflater.from(parent.getContext()).inflate(rowLayout, parent, false);
        return new PolicyViewHolder(view);
    }

    @Override
    public void onBindViewHolder (PolicyViewHolder holder, final int position){
        holder.nomorpolis.setText(policyNo.get(position).getPolicyNo());
    }

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

}

政策状态:

 public class PolicyStatus {

    @SerializedName("success")
    @Expose
    private Boolean success;
    @SerializedName("PolicyNo")
    @Expose
    private List<PolicyNo> policyNo = null;

    public Boolean getSuccess() {
        return success;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }

    public List<PolicyNo> getPolicyNo() {
        return policyNo;
    }

    public void setPolicyNo(List<PolicyNo> policyNo) {
        this.policyNo = policyNo;
    }

政策编号:

 public class PolicyNo {

    @SerializedName("ANO")
    @Expose
    private Integer aNO;
    @SerializedName("PolicyNo")
    @Expose
    private String policyNo;
    @SerializedName("ADate")
    @Expose
    private ADate aDate;
    @SerializedName("ADATE")
    @Expose
    private String aDATE;

    public Integer getANO() {
        return aNO;
    }

    public void setANO(Integer aNO) {
        this.aNO = aNO;
    }

    public String getPolicyNo() {
        return policyNo;
    }

    public void setPolicyNo(String policyNo) {
        this.policyNo = policyNo;
    }

    public ADate getADate() {
        return aDate;
    }

    public void setADate(ADate aDate) {
        this.aDate = aDate;
    }

    public String getADATE() {
        return aDATE;
    }

    public void setADATE(String aDATE) {
        this.aDATE = aDATE;
    }

    public PolicyNo (String policyNo){
        this.policyNo = policyNo;

    }

}

api 端点:

 @GET ("policy.php")
Call<PolicyStatus> getPolicyNo (@Query("PolicyNo") String policyNo);

【问题讨论】:

  • 检查我的答案
  • 你能发布 list_item_policy.xml 吗?
  • schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@可绘制/返回" >

标签: android string arraylist android-recyclerview retrofit


【解决方案1】:

我想你已经把list_item_policy 给了match_parent。正如您所说,您在日志中获得了 10 个大小。那么这可能是唯一的原因。可能您会在滚动条上找到项目。 所以只需将其更改为 wrap_content

还可以在预览中检查您的recyclerView 获得全高检查。

【讨论】:

  • omg.当我滚动时,我找到了我的 data.so,我如何设置我的 list_item_policy?这是我的 list_item_policy : schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/back " >
  • 对于 list_item_policy.xml:pastebin.com/iWGUSJ2E 对于 activity_policy.xml:pastebin.com/y7EwPx1q
  • list_item_policy:pastebin.com/zyJpHuNractivity_policy:pastebin.com/jLwP9jPx
  • ooo yeaah ..它工作了!!!...非常感谢你 muccccccchhhh .....你太棒了!!!!
  • @MathewsEdward 乐于助人 :) 编码愉快 :)
【解决方案2】:

代码看起来不错,除了我注意到的一件事:-

这样做:-

LinearLayoutManager layoutManager
    = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);

myList.setLayoutManager(layoutManager);

而不是:-

recyclerView.setLayoutManager(new LinearLayoutManager(this));

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多