Как я могу решить несколько данных диапазона в Volly - PullRequest
0 голосов
/ 03 апреля 2019

родимые.Я написал код для получения данных из моего веб-сервиса с помощью Volly, но когда я хочу показать свои данные, например, за один день, и мой веб-сервис просто отправляет мне один ответ, мой код отправляется на перехват блока, но когда я выбрал 6 днеймой код работает, и когда мой веб-сервис только что отправил ничего подобного []

public void GetPail(final IMessageListener listener,final String StartDate,final String EndDate){

    Response.Listener listener1 = new Response.Listener() {
        @Override
        public void onResponse(Object response) {
            listener.onSuccess(response.toString());
        }
    };

    Response.ErrorListener errorListener = new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            listener.onFail(error.getMessage());
        }
    };

    StringRequest stringRequest = new StringRequest(Request.Method.POST,URLs.PAIL,listener1,errorListener){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<>();

            params.put("StartDate",StartDate);
            params.put("EndDate",EndDate);

            return params;
        }
    };

    queue.add(stringRequest);
}

Это мой анализатор данных

public static List<Pail> GetPails(String response) throws JSONException {

    List<Pail> pailList = new ArrayList<>();

    JSONArray jsonArray = new JSONArray(response);

    for (int i=0 ; i < jsonArray.length() ; i++){

        JSONObject object = jsonArray.getJSONObject(i);

        Pail pail = new Pail();

        String Date = object.getString("Date").substring(0,10).replaceAll("-","/");

        pail.setDate(Date);
        pail.setLimeStone(object.getString("LimeStone"));
        pail.setShail(object.getString("Shail"));
        pail.setSilica(object.getString("Silica"));
        pail.setIron(object.getString("Iron"));
        pail.setGypsum(object.getString("Gypsum"));
        pail.setFilteredLimeStone(object.getString("FilteredLimeStone"));
        pail.setPercentage(object.getString("Percentage"));
        pail.setTotal(object.getString("Total"));

        pailList.add(pail);

    }

    return pailList;
}

Это мой метод

public class Pail {

private String Date;
private String LimeStone;
private String Shail;
private String Silica;
private String Iron;
private String Gypsum;
private String FilteredLimeStone;
private String Percentage;
private String Total;


public String getDate() {
    return Date;
}

public void setDate(String date) {
    Date = date;
}

public String getLimeStone() {
    return LimeStone;
}

public void setLimeStone(String limeStone) {
    LimeStone = limeStone;
}

public String getShail() {
    return Shail;
}

public void setShail(String shail) {
    Shail = shail;
}

public String getSilica() {
    return Silica;
}

public void setSilica(String silica) {
    Silica = silica;
}

public String getIron() {
    return Iron;
}

public void setIron(String iron) {
    Iron = iron;
}

public String getGypsum() {
    return Gypsum;
}

public void setGypsum(String gypsum) {
    Gypsum = gypsum;
}

public String getFilteredLimeStone() {
    return FilteredLimeStone;
}

public void setFilteredLimeStone(String filteredLimeStone) {
    FilteredLimeStone = filteredLimeStone;
}

public String getPercentage() {
    return Percentage;
}

public void setPercentage(String percentage) {
    Percentage = percentage;
}

public String getTotal() {
    return Total;
}

public void setTotal(String total) {
    Total = total;
}
}

Это мой метод в действии

private void getPail(String StartDate, String EndDate) {
    GetData data = new GetData();

    IMessageListener listener = new IMessageListener() {
        @Override
        public void onSuccess(String Message) {

            try {

                pailList = DataParser.GetPails(Message);

                if (pailList.size() > 0) {


                    PailAdapter adapter = new PailAdapter(pailList);
                    recyclerView.setAdapter(adapter);

                    LinearLayoutManager manager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false);
                    recyclerView.setLayoutManager(manager);


                    app.SnackBar(recyclerView, "اطلاعات با موفقیت دریافت شد");

                } else {
                    app.SnackBar(recyclerView, "در این بازه زمانی دیتایی موجود نیست");
                }

            } catch (JSONException e) {
                e.printStackTrace();
                app.SnackBar(recyclerView, "مشکلی در دریافت اطلاعات به وجود آمده است.");
            }

        }

        @Override
        public void onFail(String ErrorMessage) {
            if (ErrorMessage == null) {
                app.SnackBar(recyclerView, "مشکل در برقراری ارتباط با سرور\n لطفا اتصال اینترنت خود را بررسی کنید. ");
            }
            //app.SnackBar(recyclerView,ErrorMessage);
        }
    };

    data.GetPail(listener, StartDate, EndDate);
}

Это мой макет отображения RecyclerView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="wrap_content"

android:orientation="vertical"

android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingBottom="50dp"

>


<RelativeLayout
    android:background="@drawable/remain_background"
    android:padding="10dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">













    <LinearLayout
        android:id="@+id/PailRowHeaderContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/glass_rounded_background"
        android:orientation="horizontal">

        <android.support.v7.widget.AppCompatTextView


            android:id="@+id/PailRowDateTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Date"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowLimeStoneTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/LimeStonePersian"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowShailTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Shail"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />



    </LinearLayout>





    <LinearLayout
        android:layout_marginTop="5dp"
        android:id="@+id/PailRowDetailContainer1"
        android:layout_below="@+id/PailRowHeaderContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.v7.widget.AppCompatTextView


            android:id="@+id/PailRowDate"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/SampleDate"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowLimeStone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />

        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowShail"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />





    </LinearLayout>

</RelativeLayout>






<RelativeLayout
    android:background="@drawable/remain_background"
    android:layout_marginTop="10dp"
    android:padding="10dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">













    <LinearLayout
        android:id="@+id/PailRowHeaderContainer2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/glass_rounded_background"
        android:orientation="horizontal">


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowSilicaTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Silica"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowIronTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/IronPersian"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowGypsumTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/GypsumPersian"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />









    </LinearLayout>





    <LinearLayout
        android:layout_marginTop="5dp"
        android:id="@+id/PailRowDetailContainer2"
        android:layout_below="@+id/PailRowHeaderContainer2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowSilica"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowIron"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowGypsum"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />








    </LinearLayout>

</RelativeLayout>










<RelativeLayout
    android:background="@drawable/remain_background"
    android:layout_marginTop="10dp"
    android:padding="10dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">













    <LinearLayout
        android:id="@+id/PailRowHeaderContainer3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/glass_rounded_background"
        android:orientation="horizontal">


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowFilteredLimeStoneTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.4"
            android:gravity="center"

            android:text="@string/FilteredLimeStone"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowPercentageTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.1"
            android:gravity="center"

            android:text="@string/PailPercentage"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowTotalTitle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.3"
            android:gravity="center"

            android:text="@string/Total"
            android:textColor="@color/TitleTextColor"
            android:textSize="20sp" />




    </LinearLayout>





    <LinearLayout
        android:layout_marginTop="5dp"
        android:id="@+id/PailRowDetailContainer3"
        android:layout_below="@+id/PailRowHeaderContainer3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">


        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowFilteredLimeStone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.4"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowPercentage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.1"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />



        <android.support.v7.widget.AppCompatTextView

            android:id="@+id/PailRowTotal"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_weight="1.3"
            android:gravity="center"

            android:text="@string/Zero"
            android:textColor="@color/DetailTextColor"
            android:textSize="20sp" />




    </LinearLayout>

</RelativeLayout>

это мои данные веб-службы за один день и моя работане работает

[{
        "Date": "1398-01-13T00:00:00",
        "LimeStone": 2874090,
        "Shail": 1130520,
        "Silica": 0,
        "Iron": 0,
        "Gypsum": 0,
        "FilteredLimeStone": 0,
        "Percentage": "28.23",
        "Total": 4004610
    }]

, но когда мой веб-сервис отправляет этот ответ, моя программа работает

[
    {
        "Date": "1398-01-09T00:00:00",
        "LimeStone": 2864220,
        "Shail": 810980,
        "Silica": 0,
        "Iron": 0,
        "Gypsum": 0,
        "FilteredLimeStone": 0,
        "Percentage": "22.06",
        "Total": 3675200
    },
    {
        "Date": "1398-01-10T00:00:00",
        "LimeStone": 3216710,
        "Shail": 1141670,
        "Silica": 0,
        "Iron": 0,
        "Gypsum": 150970,
        "FilteredLimeStone": 0,
        "Percentage": "26.19",
        "Total": 4509350
    },
    {
        "Date": "1398-01-11T00:00:00",
        "LimeStone": 3899060,
        "Shail": 1008340,
        "Silica": 306900,
        "Iron": 0,
        "Gypsum": 0,
        "FilteredLimeStone": 31490,
        "Percentage": "25.22",
        "Total": 5245790
    },
    {
        "Date": "1398-01-12T00:00:00",
        "LimeStone": 644830,
        "Shail": 205460,
        "Silica": 0,
        "Iron": 0,
        "Gypsum": 0,
        "FilteredLimeStone": 0,
        "Percentage": "24.16",
        "Total": 850290
    },
    {
        "Date": "1398-01-13T00:00:00",
        "LimeStone": 2874090,
        "Shail": 1130520,
        "Silica": 0,
        "Iron": 0,
        "Gypsum": 0,
        "FilteredLimeStone": 0,
        "Percentage": "28.23",
        "Total": 4004610
    }
]
...