Tout d'abord vous devez avoir le modèle comment le faire! par exemple, nous avons 3 objet comme id, le nom et la famille vous créez une classe et nommez-le comme
model_phpservice
public class model_phpservice {
private int id;
private String name;
private String family;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFamily() {
return family;
}
public void setFamily(String family) {
this.family = family;
}
}
après que vous devez avoir écrire un code pour analyser les codes que nous nommons cette classe
phpservices
public class phpservices {
private final Context context;
private static final String TAG = "phpservices";
public phpservices(Context context) {
this.context = context;
}
public void jsonrequest(final InterFaceData interFaceData) {
JsonArrayRequest jsonArrayRequest = new
JsonArrayRequest(Request.Method.GET, "http://yourip/youraddress/",
null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
List<model_phpservice> CompleteList=new ArrayList<>();
for (int i = 0; i < response.length(); i++) {
model_phpservice getmydata=new model_phpservice();
try{
JSONObject jsonObject = response.getJSONObject(i);
getmydata.setId(jsonObject.getInt("id")) ;
getmydata.setName(jsonObject.getString("name"));
getmydata.setFamily(jsonObject.getString("family"));
}catch (JSONException e) {
e.printStackTrace();
Log.e(TAG, "getdata: "+"getdata errrorrrr");
}
CompleteList.add(getmydata);
}
if (CompleteList!=null) {
Log.i(TAG, "onResponse: " + "itsok");
interFaceData.oninterface(CompleteList);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: "+"not ok");
}
});
jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(8000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue requestQueue=Volley.newRequestQueue(context);
requestQueue.add(jsonArrayRequest);
}
public interface InterFaceData{
void oninterface(List<model_phpservice> listtosend);
}
}
Je sais que peut-être il est difficile de comprendre, mais que le bon code
http://yourip/youraddress/
vous devez mettre votre adresse de la page qui vous donne le code JSON pour ip si vous testez votre application dans l'émulateur, vous pouvez trouver l'adresse IP avec ipconfig cmd
et pour l'interface je l'utilise, nous avons besoin d'interface pour envoyer la liste à l'activité principale
et l'activité principale
public class phpservicesActivity extends AppCompatActivity{
private static final String TAG = "phpservicesActivity";
private Button btn_get;
private ListView listView;
// private ProgressBar progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phpservices);
btn_get=(Button)findViewById(R.id.btn_get);
listView=(ListView)findViewById(R.id.list_data);
//progress=(ProgressBar)findViewById(R.id.progress3);
final phpservices servicesss=new phpservices(this);
btn_get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// progress.setVisibility(View.VISIBLE);
servicesss.jsonrequest(new phpservices.InterFaceData() {
@Override
public void oninterface(List<model_phpservice> completelist) {
if (listtosend!=null)
{
Log.i(TAG, "oninterface: "+"interface is ok");
adapterff adapter =new adapterff(phpservicesActivity.this,completelist);
listView.setAdapter(adapter);
}
else{
Log.e(TAG, "oninterface: "+"error in main activity");
}
//progress.setVisibility(View.INVISIBLE);
}
});
}
});
}
et vous avez besoin pour créer de fichier trop 1 la classe adaptateur pour conect listview à la liste et la mise en page 2, nous devons utiliser dans listview
1 adaptateur
Qu'est-ce que vous avez utilisé la bibliothèque? parce que j'ai utilisé ** Simple.json ** et il ne supporte pas * JSONArray (gameJSON) *. Je ne pouvais pas trouver une bonne bibliothèque. –