J'utilise un tiroir de navigation personnalisé dans mon application. Pour les activités de commutation, j'utilise setOnClickListener pour chaque bouton. Mais je pense que cela pourrait consommer beaucoup de mémoire car le même code doit être chargé dans chaque activité à chaque fois. Donc, y a-t-il un moyen efficace de gérer sur l'écouteur de clic pour le menu comme cas de commutateur?Les meilleures pratiques pour setOnClickListener dans le tiroir de navigation personnalisé
Mon code pour les clics nav-point.
Button oneButton = (Button) findViewById(R.id.nav_one);
Button twoButton = (Button) findViewById(R.id.nav_two);
Button threeButton = (Button) findViewById(R.id.nav_three);
Button fourButton = (Button) findViewById(R.id.nav_four);
Button fiveeButton = (Button) findViewById(R.id.nav_five);
oneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Intent firstIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(firstIntent);
}
});
twoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Intent secondIntent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(secondIntent);
}
});
threeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Intent threeButton = new Intent(getApplicationContext(), ThirdActivity.class);
startActivity(thirdIntent);
}
});
threeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Intent fourButton = new Intent(getApplicationContext(), FouthActivity.class);
startActivity(fourthIntent);
}
});
fourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
Intent fiveButton = new Intent(getApplicationContext(), FifthouthActivity.class);
startActivity(fifthIntent);
}
});
poster votre extrait de code – Anil
Que voulez-vous dire « chaque activité »? Le NavDrawer devrait changer les Fragments de * une activité * –
Je dois mettre les écouteurs de clic dans chaque activité pour faire le travail de menu. @ cricket_007 –