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.
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
Vous devez vous connecter pour publier un commentaire.
D'abord le besoin d'u t créer
row_listitem.xml
fichier comme:Maintenant, u besoin de créer Personnalisé BaseAdapter comme:
}
Maintenant, u pouvez configurer votre activité principale comme:
publier vos logcat
Après avoir essayé aujourd'hui, j'ai corrigé ça. BTW, merci beaucoup pour votre aide. De son travail à la perfection .
yo bienvenue.
comment avez-vous fixé? Je suis JSONException: Fin de saisie à caractère 0
OriginalL'auteur M D
@Allen Chun , en fait elle n'est pas dans mon esprit actuellement que ce que j'ai changé dans mon code pour faire fonctionner mon code parfaitement. Mais je partage tous mes codes qui fonctionnent parfaitement.
Sa ma mise en page de code,
C'est ma coutume listview mise en page des codes,
sa ma l'activité nommée "panneau d'affichage" .
Et sa ma personnalisé baseadapter codes,
OriginalL'auteur Mushfiqul Tuhin
Dans cet exemple, je me connecte Twitters public timeline JSON url.
Veuillez diriger votre attention sur le listItems.ajouter(jo.getString(“texte”)); ligne. C'est la partie que je suis en saisissant un “texte” de l'attribut/propriété du seul objet JSON. Pour obtenir un plus “visuelle” de l'image de l'ensemble des attributs/propriétés que vous voudrez peut-être jeter un oeil à la version XML de twitters public timeline. De cette façon, vous obtiendrez belle couleur XML dans votre navigateur, où vous pouvez voir tous les attributs disponibles.
Lien: http://inchoo.net/dev-talk/android-development/simple-android-json-parsing-example-with-output-into-listactivity/
OriginalL'auteur Shubham
Parser Json:
OriginalL'auteur Chande Siddhi
OriginalL'auteur hardip
Obtenir l'annexe
OriginalL'auteur Chande Siddhi
ListView de JSON données extraites à l'aide Retrofit2 service
Réponse JSON
Dans MainActivity.java nous allons passer à des données JSON ArrayList(dummyData)
Dans la coutume BaseAdapter notre
Ici Monmodèle sera utilisé comme un mappage personnalisé modèle de réponse de service
Voir lien pour une complète explication du code
OriginalL'auteur Code Spy