2012-11-27 4 views
0

d'abord je suis un programmeur et je voulais faire quelque chose comme prendre l'utilisateur quand il/elle sélectionne Clear_data et cela amènera la personne à l'activité Clear_data.ListView adapter et ArrayAdapter

Je rencontre un problème avec try and catch, car je suis encore un peu perdu dans la programmation générale. Comme je le teste quand je choisis le premier choix qui est Text_Colour et il ouvre l'activité Clear_data au lieu de Text_Colour.

Voici le code:

public class Settings extends ListActivity { 


String classes[] = { "Text_Colour", "Clear_data", "Contact Developer" }; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new ArrayAdapter<String>(Settings.this, android.R.layout.simple_list_item_1, classes)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    String colours = classes[0]; 
    String cdata = classes[1]; 

    try { 
    Class Class1 = Class.forName("com.example.test1." + colours); 
    Intent intent1 = new Intent(Settings.this, Class1); 
    startActivity(intent1); 
    }catch(ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
    try { 
    Class Class2 = Class.forName("com.example.test1." + cdata); 
    Intent intent2 = new Intent(Settings.this, Class2); 
    startActivity(intent2); 
    } 
    catch(ClassNotFoundException d) { 
     d.printStackTrace(); 
    } 

} 

Merci pour votre temps les gars.

Répondre

2

Vous sholud probablement ajouter un opérateur de commutateur comme celui-ci:

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    String colours = classes[0]; 
    String cdata = classes[1]; 

switch(position){ 
case 0: 
    try { 
    Class Class1 = Class.forName("com.example.test1." + colours); 
    Intent intent1 = new Intent(Settings.this, Class1); 
    startActivity(intent1); 
    }catch(ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
break; 
case 1: 
    try { 
    Class Class2 = Class.forName("com.example.test1." + cdata); 
    Intent intent2 = new Intent(Settings.this, Class2); 
    startActivity(intent2); 
    } 
    catch(ClassNotFoundException d) { 
     d.printStackTrace(); 
    } 
break; 
} 

} 
+0

Merci pour cela! Totalement oublié d'utiliser une déclaration de commutateur! – Ket

+0

@Ket Vous êtes toujours les bienvenus. SVP acceptez la réponse si cela vous a aidé;) –

Questions connexes