J'ai un problème avec mon ListView onClick. J'essaye de t'expliquer par une particule de mon code.
Donc quand je filtre en cherchant c par exemple l'activitéA s'ouvre, la même chose avec l'activité B. Donc pendant le filtrage ils prennent la position 0. Parce que sans filtrer chaque clic ouvre la bonne activité. Alors, comment puis-je résoudre ce problème?
private SearchView sv;
Protected void onCreate........
String[] Values = {"a","b","c"};
listView = findViewById(R.id.liste);
sv=findViewById(R.id.searchview);
ArrayAdapter<String>......(.simple_list_item_2,android.R.id.text1,Values);
listView.setAdapter;
sv.setOnQueryTextListener........
//everything here is ok it's filtering well.
//After that,I've my listview.onClick
listview.setOnItemClickListener()
........(parent, View view, int position, long id){
if(position == 0){
Itent a = new Intent (getApplicationContext(),AtivityA.class);
startActivity(a)
}
if(position == 1){
Intent b = new Intent (getApplicationContext(),AtivityB.class);
startActivity(b)
}
if(position == 2){
Intent c = new Intent (getApplicationContext(),AtivityC.class);
startActivity(c)
}
}```
2 réponses
Je ne sais pas si cela aidera, mais j'utiliserais un commutateur au lieu d'instructions if.
switch (position) {
case 0:
Intent a = new Intent (getApplicationContext(),AtivityA.class);
startActivity(a)
break;
case 1:
Intent b = new Intent (getApplicationContext(),AtivityB.class);
startActivity(b)
break;
case 2:
Intent c = new Intent (getApplicationContext(),AtivityC.class);
startActivity(c)
break;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.//item:
startActivity(new Intent(this, ActivityA.class));
return true;
case R.id.//item:
startActivity(new Intent(this, ActivityB.class));
return true;
case R.id.//item:
startActivity(new Intent(this, ActivityC.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
De nouvelles questions
java
Java est un langage de programmation de haut niveau. Utilisez cette balise lorsque vous rencontrez des problèmes pour utiliser ou comprendre la langue elle-même. Cette balise est rarement utilisée seule et est le plus souvent utilisée en conjonction avec [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] et [maven].