Filter Json Data from php url in android studio using date picker

Viewed 62

Hi i have successfully retrieved some data from my php url from my database but am stuck at trying to get data for specific date using date picker the code below am able to get data of the current day but how do i get data using date picker on the floating action button.

I have placed the material date picker but how do i parse or filter the json data using the date that i obtain from the date pickerclick listener.

public class MainActivity extends AppCompatActivity {
private ArrayList<Games> gamesList;
private GamesAdapter mGamesAdapter;
//the recyclerview
private RecyclerView recyclerView;
private RequestQueue mRequestQueue;
private SwipeRefreshLayout swipeRefreshLayout;
private FloatingActionButton floatingActionButton;





@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = findViewById(R.id.recyclerView);
    floatingActionButton = findViewById(R.id.floatingActionButton);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    gamesList = new ArrayList<>();
    mGamesAdapter = new GamesAdapter(this, gamesList);
    recyclerView.setAdapter(mGamesAdapter);
    swipeRefreshLayout = findViewById(R.id.swipelayout);
    swipeRefreshLayout.setColorSchemeResources(R.color.blue, R.color.lightBlue, R.color.deepPurple,
            R.color.purple, R.color.pink, R.color.orange, R.color.red);

    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            loadGames();
            //swipeRefreshLayout.setRefreshing(true);
            Toast.makeText(MainActivity.this, "Swipe down to Refresh the matches.", Toast.LENGTH_SHORT).show();
        }
    });
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    calendar.clear();

    Long today = MaterialDatePicker.todayInUtcMilliseconds();

    //Material Date Picker
    MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.datePicker();
    builder.setTitleText("SELECT A DATE");
    builder.setSelection(today);

    MaterialDatePicker materialDatePicker = builder.build();
    floatingActionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            materialDatePicker.show(getSupportFragmentManager(), "DATE_PICKER");
        }
    });
    materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
        @Override
        public void onPositiveButtonClick(Object selection) {
           // mTextView.setText("Selected Date : "+materialDatePicker.getHeaderText());

        }
    });


    mRequestQueue = Volley.newRequestQueue(this);

}

@Override
protected void onStart() {
    loadGames();
    super.onStart();
}

private void loadGames() {
    swipeRefreshLayout.setRefreshing(true);
    final String today_date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());

    String urlJsonObj = "https://surebetsapp.com/json_get_data.php";
    gamesList.clear();

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlJsonObj, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray("server_response");

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

                            Games game = new Games();
                            game.country = serverResponse.getString("league");
                            //game.league = serverResponse.getString("country");
                            game.home = serverResponse.getString("home_team");
                            game.away = serverResponse.getString("away_team");
                            game.tip = serverResponse.getString("pick");
                            //game.odd = serverResponse.getString("bet_odds");
                            game.time = serverResponse.getString("m_time");
                            game.result = serverResponse.getString("outcome");
                            game.outcome = serverResponse.getString("result");
                            game.logo = serverResponse.getString("league_logo");
                            game.h_logo = serverResponse.getString("h_logo_path");
                            game.a_logo = serverResponse.getString("a_logo_path");

                            String date = serverResponse.getString("m_date");
                            String mDate = date.substring(0, 10);

                            if (mDate.equals(today_date)) {
                                gamesList.add(game);
                            }/* else (mDate.equals()) {

                            }*/
                            mGamesAdapter.notifyDataSetChanged();


                            //gamesList.add(new Games(time, country, tip, league, home, away, odd, result, outcome, logo, h_logo, a_logo));
                        }
                        //mGamesAdapter = new GamesAdapter(MainActivity.this, gamesList);
                        //recyclerView.setAdapter(mGamesAdapter);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    swipeRefreshLayout.setRefreshing(false);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            swipeRefreshLayout.setRefreshing(false);
            Log.d(TAG, "onErrorResponse: "+error);

        }
    });
    mRequestQueue.add(request);


}
0 Answers
Related