2011-05-30 3 views
1

Ok, je suis très nouveau dans le développement et la programmation Android en général. J'ai un listView avec deux éléments dedans, quand un utilisateur clique dessus, je veux que chacun passe à une activité différente. Voici le code que j'ai jusqu'ici.ListView va à différentes activités

package com.pais.convert; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class list extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String[] choose = getResources().getStringArray(R.array.list_chooser); 
     setListAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, choose)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     Intent intent = new Intent(this, tempConvert.class); 
     intent.putExtra("KEY_SELECTED_INDEX", position); 
     startActivity(intent); 
    } 
    } 

Voici donc quand il clique sur les deux vont aller à la tempConvert.class. Je veux celui qui dit "Temp" aller à tempConvert et quand "Dist" est cliqué il va à distConvert.class. Comment pourrais-je accomplir cela?

Merci à l'avance pour l'aide

Répondre

2

intérieur onListItemClick, faire une déclaration de commutateur avec le paramètre de position int. Ensuite, si c'est 0, vous allez à une classe, si c'est 1, vous allez à l'autre.

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    switch(position) { 
     case '0' :    
      Intent intent = new Intent(this, tempConvert.class); 
      intent.putExtra("KEY_SELECTED_INDEX", position); 
      startActivity(intent); 
      break; 
     case '1' :    
      Intent intent = new Intent(this, distConvert.class); 
      intent.putExtra("KEY_SELECTED_INDEX", position); 
      startActivity(intent); 
      break; 
    } 
} 
1
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    Intent intent = null; 
    switch (position) { 
    case 0: 
     intent = new Intent(this, tempConvert.class); 
     break; 
    case 1: 
     intent = new Intent(this, distConvert.class); 
     break; 
    } 
    if (intent != null) { 
     startActivity(intent); 
    } else { 
     // report unknown item selection 
    } 
} 
+0

Donc, si je voulais ajouter d'autres activités à ouvrir tout ce que je dois faire est d'ajouter plus de cas oui? Merci – sipjca

+0

Voilà comment je le ferais. Vous pourriez être en mesure de le rendre un peu plus robuste aux changements de votre interface en vous appuyant sur l'identifiant au lieu de la position, mais c'est un appel de jugement. –

0
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
Intent intent = null; 
switch (position) { 
case 0: 
    startActivity(new Intent(this, tempConvert.class)); 
    break; 
case 1: 
    startActivity(new Intent(this, distConvert.class)); 
    break; 
} 

} 
Questions connexes