comment afficher extraites des données json dans listview à l'aide de baseadapter

Je suis nouveau sur android et java.Récemment, je vais avoir des problème avec l'affichage de récupéré les données json dans listview à l'aide de baseadapter.
Au début, j'ai utilisé ce code

  @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new TheTask().execute();
}
class TheTask extends AsyncTask<Void,Void,String>
{
@Override
protected String doInBackground(Void... params) {
String str = null;
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/BSDI/show.php");
HttpResponse response = httpclient.execute(httppost);
str =  EntityUtils.toString(response.getEntity());     
} 
catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
String response = result.toString();
try {
ArrayList<String> stringArray = new ArrayList<String>();
JSONArray new_array = new JSONArray(response);
for(int i = 0, count = new_array.length(); i< count; i++)
{
try {
JSONObject jsonObject = new_array.getJSONObject(i);
stringArray.add(jsonObject.getString("title").toString());
}
catch (JSONException e) {
e.printStackTrace();
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>   (MainActivity.this,R.layout.test_tuh,stringArray);            
ListView list= (ListView) findViewById(R.id.listView1);
list.setAdapter(adapter);
} catch (JSONException e) {
//TODO Auto-generated catch block
e.printStackTrace();
//tv.setText("error2");
} 
}
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Ce code affiche extraites des données json avec succès. Mais il n'affiche qu'une seule ligne. J'ai besoin de plus d'une (deux) des lignes dans la liste. J'ai donc essayé ce code
et il ne fonctionne pas, il affiche un écran vide .

Mon code est ci-dessous,

 class TheTask extends AsyncTask<Void,Void,String>
{
@Override
protected String doInBackground(Void... params) {
String str = null;
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/BSDI/show.php");
HttpResponse response = httpclient.execute(httppost);
str =  EntityUtils.toString(response.getEntity());     
} 
catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String result) {
//TODO Auto-generated method stub
super.onPostExecute(result);
String response = result.toString();
try {
arrayList=new ArrayList<get_set>();
ArrayList<String> stringArray = new ArrayList<String>();
JSONArray new_array = new JSONArray(response);
for(int i = 0, count = new_array.length(); i< count; i++)
{
try {
JSONObject jsonObject = new_array.getJSONObject(i);
stringArray.add(jsonObject.getString("title").toString());
}
catch (JSONException e) {
e.printStackTrace();
}
}
ListView listView;
adap= new BaseAdapter() {
LayoutInflater inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@Override
public View getView(int position, View view, ViewGroup viewgroup) {
if (view==null) {
view=inflater.inflate(R.layout.bsdi, null);
}
TextView title_tuh=(TextView) view.findViewById(R.id.title1);
TextView notice_tuh=(TextView) view.findViewById(R.id.notice1);
title_tuh.setText(arrayList.get(position).getTitle());
notice_tuh=.setText(arrayList.get(position).getNotice());
return view;
}
@Override
public long getItemId(int arg0) {
//TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return arrayList.get(position);
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return arrayList.size();
}
};
listView=(ListView) findViewById(R.id.listView1);
listView.setAdapter(adap);
} catch (JSONException e) {
//TODO Auto-generated catch block
e.printStackTrace();
//tv.setText("error2");
} 
}

Que je suis conscient de cela , le problème est ici

ArrayList<String> stringArray = new ArrayList<String>();
JSONArray new_array = new JSONArray(response);
for(int i = 0, count = new_array.length(); i< count; i++)
{
try {
JSONObject jsonObject = new_array.getJSONObject(i);
stringArray.add(jsonObject.getString("title").toString());
}
catch (JSONException e) {
e.printStackTrace();
}
}

Que je suis guesing qui extrait les données json est de stocker dans stringArray mais ce n'est pas utilisée plus tard. Si j'essaie de l'utiliser de cette manière , j'obtiens l'erreur

title_tuh.setText(stringArray .get(position).getTitle());
notice_tuh=.setText(stringArray .get(position).getNotice());

Si j'essaie de ne pas utiliser
Liste de tableaux stringArray = new ArrayList();

et l'utilisation

arrayList=new ArrayList(); au lieu de cela , comme cela, alors je reçois aussi des erreurs.

    arrayList=new ArrayList<get_set>();
JSONArray new_array = new JSONArray(response);
//JSONArray jsonArray = new JSONArray();
for(int i = 0, count = new_array.length(); i< count; i++)
{
try {
JSONObject jsonObject = new_array.getJSONObject(i);
arrayList.add(jsonObject.getString("title").toString());
//String in = mInflater.inflate(R.layout.custom_row_view, null);
}
catch (JSONException e) {
e.printStackTrace();
}
}

Je ne peux pas trouver comment faire pour résoudre ce problème.J'ai vu beaucoup de tutoriels en ligne, mais ceux ci n'était pas utile pour moi. S'il vous plaît aider moi.

Quel est votre problème exactement?
J'ai essayé de récupérer les données json et l'afficher dans la liste. J'ai récupéré json dta à partir de PHP et de les afficher dans une seule ligne listview. Mais j'ai besoin de l'afficher sur plusieurs lignes d'affichage de liste. Mon problème est ici. Je veux afficher plusieurs lignes listview . Dans chaque ligne , 1ère ligne "titre" et la deuxième ligne sera "avis" . J'ai partagé des codes ci-dessus pour vous donner une idée de ce que j'ai essayé , et afin que vous puissiez savoir où est ma faute
ici u nécessité de mettre en œuvre BaseAdpater au lieu de ArrayAdapter.
si vous me guider avec un code simple , alors il serait utile pour moi .
Tutoriel pour construire listView avec BaseAdapter à l'aide de JSON chercher à l'aide de Retrofit2 service freakyjolly.com/...

OriginalL'auteur Mushfiqul Tuhin | 2014-02-09

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *