import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ProgressBar; import android.widget.Toast; import org.json.JSONArray; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class JSONActivity extends AppCompatActivity { private static final String TAG ="JSONExample"; private List persons; private RecyclerView mRecyclerView; private RVAdapter adapter; private ProgressBar progressBar; private String urlString = "http://mobiledev.ronaldramos.info/getallcontacts.php"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.rv); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); progressBar = (ProgressBar) findViewById(R.id.progressBar); progressBar.setVisibility(View.VISIBLE); new GetData().execute(urlString); } public void goToAdd(View view){ Intent intent = new Intent(getApplicationContext(), AddActivity.class); startActivity(intent); } //asynctask public class GetData extends AsyncTask { @Override protected void onPreExecute(){ setProgressBarIndeterminateVisibility(true); } @Override protected void onPostExecute(Integer result){ progressBar.setVisibility(View.GONE); if(result == 1) { adapter = new RVAdapter(getApplicationContext(), persons); mRecyclerView.setAdapter(adapter); }else{ Toast.makeText(getApplicationContext(), "Failed to Fetch data!", Toast.LENGTH_LONG).show(); } } @Override protected Integer doInBackground(String... params){ Integer result = 0; HttpURLConnection urlConnection; try { URL url = new URL(params[0]); urlConnection = (HttpURLConnection)url.openConnection(); int statusCode = urlConnection.getResponseCode(); //200 represents HTTP ok if (statusCode == 200) { BufferedReader r = new BufferedReader( new InputStreamReader(urlConnection.getInputStream())); StringBuilder response = new StringBuilder(); String line; while((line = r.readLine()) != null){ response.append(line); } parseResult(response.toString()); result =1; //success } else { result = 0; //failed to fetch data } } catch (Exception e) { e.printStackTrace(); } return result; } }//end of GetData asynctask class private void parseResult(String result){ try{ JSONArray personJSON = new JSONArray(result); persons = new ArrayList<>(); for(int i =0; i