2 pièce(s) jointe(s)
[Débutant] Utilisation de NavigationView
Bonjour à toutes et à tous,
Je souhaite remettre au gout du jour un très vieux projet que j'avais fait sous Android et qui était fait de cette façon :
MainActivity avec des boutons et qui chacun d'un fait appel à un Intent pour ouvrir une nouvelle activity.
Maintenant je suis en train d'utiliser NavigationView qui me permet d'avoir un menu sur la gauche comme le playStore, or quand on clique sur un des choix et que j'utilise intent il me ferme mon activity (enfin il la met en arrière-plan) pour m'ouvrir la nouvelle activity (En même temps c'est ce que je lui demande).
Mon souhait serait qu'il l'ouvre dans la page ci-dessous :
Voici l'activity de base qui affiche le nom du dresseur.
Pièce jointe 333670
Voici ce qu'il se passe quand je clique sur le bouton en haut à gauche ou que je fais coulisser le menu
Pièce jointe 333675
Et voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| package com.caranille.myownpet;
import android.content.Intent;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import com.caranille.myownpet.DB.DBPetManage;
import com.caranille.myownpet.Kernel.KernelService;
import com.caranille.myownpet.Models.Disease;
import com.caranille.myownpet.Models.Trainers;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private SensorManager sensorManager;
private Button Resume;
private Button Stats;
private Button Arena;
private Button RelaunchTraining;
private TextView TrainerSerialNumber;
private int PERMISSION_ALL = 1;
//STATIC
static Disease disease;
static DBPetManage dbPetManage;
static Trainers trainers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
dbPetManage = new DBPetManage(this);
dbPetManage.open();
int valid = dbPetManage.VerifyPet();
if (valid == 0) {
finish();
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
startActivity(intent);
}
else
{
trainers = dbPetManage.NewTrainer();
//Lancement du service Principal du Pet qui gère la soif, faim etc...
startService(new Intent(MainActivity.this, KernelService.class));
TrainerSerialNumber = (TextView) findViewById(R.id.TrainerSerialNumber);
TrainerSerialNumber.setText("Nom : "
+ trainers.getName()
+ " \nNuméro : "
+ trainers.getID());
}
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.home_kitchen) {
Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
startActivity(intent);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
} |
Actuellement quand on clique sur Cuisine il m'ouvre l'activity Register mais il me met l'activity actuel en pause ce que je souhaiterai c'est que quand on clique sur un des choix cela ouvre l'autre activité mais au même endroit et à la place de celle qui affiche le nom du dresseur, comme ça on garde le menu sur la gauche et ça fait beaucoup plus fluide (Car oui je pourrais ouvrir une nouvelle activity avec elle aussi son menu sur la gauche mais là ça serait horrible comme code...).
Merci beaucoup de vos conseil,
Bien cordialement, Jérémy