Affichage des données d'une table MySQL dans un ListView selon l'id
Bonjour;
Je veux savoir comment on peut afficher les données d'une table dans un listview,mais je veux afficher les données selon l'id (clé primaire de la table).
j'ai une table "gare" qui a comme clé primaire id_gare et une table "arrive" (l'arrivé des trains pour une gare) qui a le champs id_gare comme clé étrangère.
mon problème est que j'ai réussi à afficher toutes les lignes de la table "arrive" dans un listview,alors que je veux afficher juste les arrivées de chaque gare.(j'ai une interface qui contient une liste des gares,lorsque je clique sur l'une de ces gares une nouvelle interface s'affiche qui contient des informations sur cette gare,et il existe un bouton "arrivé",lorsque je clique sur ce bouton il doit me mener vers une liste qui contient les arrivées(heure,numéro train,etc) qui concerne cette gare).
Remarque:J'ai utilisé GSON pour accéder à la base de données Mysql.
Merci d'avance.
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| public class liste_arrive extends Activity implements Runnable{
private ListView list;
private ProgressDialog progressd;
public List<arrive> results;
arrive a;
TextView gare;
TextView gareid;
String idgare = null;
String gare_name = null;
item_com_Arrive item;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.liste_arrive);
list = (ListView) findViewById(R.id.list1);
Bundle ext=getIntent().getExtras();
if(ext!=null)
{
gare_name=ext.getString("gare_name");
idgare=ext.getString("id_gare");
}
gare=(TextView)findViewById(R.id.gare_name);
gare.setText(gare_name);
gareid=(TextView)findViewById(R.id.idgare);
gareid.setText(idgare);
execute_web_service();
list.setClickable(false);
list.setFocusable(true);
}
public void execute_web_service() {
progressd = ProgressDialog.show(liste_arrive.this, "", "Chargemnet...", true,
false);
Thread thread = new Thread(liste_arrive.this);
thread.start();
}
public void run() {
get_liste_arrives();
handler.sendEmptyMessage(0);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
progressd.dismiss();
afficher_liste_arrives();
}
};
//}
private InputStream retrieveStream(String url) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(url);
try {
HttpResponse getResponse = client.execute(getRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(getClass().getSimpleName(), "Error " + statusCode + " for URL " + url);
return null;
}
HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();
}
catch (IOException e) {
getRequest.abort();
Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
}
return null;
}
public void get_liste_arrives(){
String url="http://10.0.2.2:8888/get_list_arrives.php";
Log.i("results arrives", "01");
InputStream source = retrieveStream(url);
Log.i("results arrives", "02");
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
List_arrives response = null;
try{
response= gson.fromJson(reader, List_arrives.class);
}
catch (Exception e) {
// TODO: handle exception
}
Log.i("results arrives", "03");
if(response !=null)
{
Log.i("results arrives", "04");
results = response.arrives;
Log.i("results arrives", "05");
}
Log.i("results arrives", ""+results.size());
}
public void afficher_liste_arrives(){
if(results!=null && results.size() > 0 )
{
item_com_Arrive adapter=new item_com_Arrive(liste_arrive.this, results);
list.setAdapter(adapter);
//Teliste_vide_label.setVisibility(View.INVISIBLE);
list.setVisibility(View.VISIBLE);
}
else
{
//Teliste_vide_label.setVisibility(View.VISIBLE);
list.setVisibility(View.INVISIBLE);
}
}
} |