2011-05-26 8 views
1

si cela fonctionne sera la première application. Il y a environ 290 produits. ouvre une nouvelle page est cliqué. mais le "commutateur" ou "si" après l'erreur est plus de 250. Quelle pourrait être la raison?android listview

if (position == 0) { 
    Intent newActivity = new Intent(this, otobus5.class); 
    startActivity(newActivity); 
} else if (position == 1) { 
    Intent newActivity6 = new Intent(this, otobus6.class); 
    startActivity(newActivity6); 
} 
. 
. 
. 
if (position == 290) { 
    Intent newActivity = new Intent(this, otobus290.class); 
    startActivity(newActivity); 
} else if (position == 291) { 
    Intent newActivity6 = new Intent(this, otobus291.class); 
    startActivity(newActivity6); 
} 
+2

Je ne comprends pas ce que vous essayez de faire, mais ayant ~ 290 si les déclarations est définitivement faux. Expliquez votre vrai problème, et nous pouvons vous donner une meilleure solution. – Kaj

+0

Astuce générale, utilisez un commutateur au lieu d'if si :-). De même, vos questions ne sont pas claires, pourriez-vous reformuler? –

+4

Cher dieu, s'il vous plaît dites-moi que vous n'avez pas vraiment 290 classes différentes ... – kcoppock

Répondre

3

Que contiennent ces classes et comment varient-elles? Très probablement, vous pouvez avoir une seule activité (otobus, dans ce cas), et il suffit de passer la position comme un supplément, comme ceci:

Intent newActivity = new Intent(this, otobus.class); 
newActivity.putIntExtra("position", position); 
startActivity(newActivity); 

Puis, dans la onCreate() de votre otobus activité, il suffit de gérer la mise en page de l'activité basée sur la position passée:

Intent passedIntent = getIntent(); 
int selectedPosition = passedIntent.getExtra("position", -1); 
+1

merci. travaillé :) – rhymes