KLeMiX Posté(e) 29 mars 2011 Share Posté(e) 29 mars 2011 Bonjour, J'ai fait un jeux de dames avec une IA ( tres simpliste ). J'ai mon Activity : public class Jeux extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("Dames","Constructeur JeuxView"); setContentView(new JeuxView(this)); } public boolean onCreateOptionsMenu(Menu Jeux ) { //Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu MenuInflater inflater = getMenuInflater(); //Instanciation du menu XML spécifier en un objet Menu inflater.inflate(R.layout.menu, Jeux); //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA // Jeux.getItem(0).getSubMenu().setHeaderIcon(R.drawable.option_white); return true; } //Méthode qui se déclenchera au clic sur un item public boolean onOptionsItemSelected(MenuItem item) { //On regarde quel item a été cliqué grâce à son id et on déclenche une action switch (item.getItemId()) { case R.id.option: Toast.makeText(Jeux.this, "Option", Toast.LENGTH_SHORT).show(); return true; case R.id.reset: Toast.makeText(Jeux.this, "New Game", Toast.LENGTH_SHORT).show(); JeuxView.resetJeuxView(); return true; case R.id.debug: Toast.makeText(Jeux.this, "Debug", Toast.LENGTH_SHORT).show(); JeuxView.debugJeuxView(); return true; case R.id.quitter: //Pour fermer l'application il suffit de faire finish() finish(); return true; } return false;} } jusque la rien d'extrodinaire : Ma view : ou il a tout le code. Mais je n'arrive pas a relier les preferences. Faut le lier a l'Activity ? a la vue ? je voudrais juste retenir le jeux en cours. J'ai regardé plusieur tuto. Mais activity, view, pref c'est flou flou flou pour moi. J'ai fait très peu de java dans ma vie. Merci pour vos eclairages ou vos liens en tout genre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 3 avril 2011 Share Posté(e) 3 avril 2011 Bonjour, J'ai fait un jeux de dames avec une IA ( tres simpliste ). J'ai mon Activity : public class Jeux extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d("Dames","Constructeur JeuxView"); setContentView(new JeuxView(this)); } public boolean onCreateOptionsMenu(Menu Jeux ) { //Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu MenuInflater inflater = getMenuInflater(); //Instanciation du menu XML spécifier en un objet Menu inflater.inflate(R.layout.menu, Jeux); //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA // Jeux.getItem(0).getSubMenu().setHeaderIcon(R.drawable.option_white); return true; } //Méthode qui se déclenchera au clic sur un item public boolean onOptionsItemSelected(MenuItem item) { //On regarde quel item a été cliqué grâce à son id et on déclenche une action switch (item.getItemId()) { case R.id.option: Toast.makeText(Jeux.this, "Option", Toast.LENGTH_SHORT).show(); return true; case R.id.reset: Toast.makeText(Jeux.this, "New Game", Toast.LENGTH_SHORT).show(); JeuxView.resetJeuxView(); return true; case R.id.debug: Toast.makeText(Jeux.this, "Debug", Toast.LENGTH_SHORT).show(); JeuxView.debugJeuxView(); return true; case R.id.quitter: //Pour fermer l'application il suffit de faire finish() finish(); return true; } return false;} } jusque la rien d'extrodinaire : Ma view : ou il a tout le code. Mais je n'arrive pas a relier les preferences. Faut le lier a l'Activity ? a la vue ? je voudrais juste retenir le jeux en cours. J'ai regardé plusieur tuto. Mais activity, view, pref c'est flou flou flou pour moi. J'ai fait très peu de java dans ma vie. Merci pour vos eclairages ou vos liens en tout genre. Tu souhaites créer un écran de préférences utilisateurs ? C'est bien ce la ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 11 avril 2011 Auteur Share Posté(e) 11 avril 2011 Tu souhaites créer un écran de préférences utilisateurs ? C'est bien ce la ? L'écran je m'en fou, je veux surtout c'est retenir mon jeux en cours. Les préférences m'ont semblé simple au premier abords, mais non en faite. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 avril 2011 Share Posté(e) 11 avril 2011 Au contraire, les Preferences, c'est vraiment très simple à utiliser. Pour sauvegarder une valeur, il te suffit de faire SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String val = prefs.getString("maValeur", "valdefaut"); // ou getInt / getLong / getBoolean / ... qui te permet de récupérer une valeur chaine (entière/longue/booléenne/...) préalablement sauvegardée dans les préférences de l'application sous la clef "maValeur" (avec, dans le cas où la valeur n'existe pas dans les préférences (aucune sauvegarde effectuée), récupération d'une valeur par défaut spécifiée dans le deuxième paramètre du getXXX) Et pour sauvegarder une valeur SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = prefs.edit(); editor.putString("maValeur", "valeur de la préférence"); // ou putInt/putLong/putBoolean/... editor.apply(); qui sauvegarde la valeur passée en deuxième paramètre de putXXX sous la clef passée en premier paramètre, valeur récupérable ensuite comme spécifié plus haut Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 Quand j'essaie de faire cela dans ma vue ca ne compile pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 21 avril 2011 Share Posté(e) 21 avril 2011 Et tu as quelle erreur ?? (j'ai beau frotter ma boule de crystal, je n'arrive pas à voir ton écran ni à deviner quelle erreur tu rencontres...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 Et tu as quelle erreur ?? (j'ai beau frotter ma boule de crystal, je n'arrive pas à voir ton écran ni à deviner quelle erreur tu rencontres...) T'es pas tres fort en faite ;) Je remets cela dans mon code et je te dit merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): FATAL EXCEPTION: main 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): java.lang.RuntimeException: Unable to start activity ComponentInfo{Jeux2Dames.klemix.com/Jeux2Dames.klemix.com.Jeux}: java.lang.NullPointerException 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2781) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread.access$2300(ActivityThread.java:135) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.os.Handler.dispatchMessage(Handler.java:99) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.os.Looper.loop(Looper.java:143) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread.main(ActivityThread.java:4914) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at java.lang.reflect.Method.invokeNative(Native Method) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at java.lang.reflect.Method.invoke(Method.java:521) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at dalvik.system.NativeStart.main(Native Method) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): Caused by: java.lang.NullPointerException 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at Jeux2Dames.klemix.com.JeuxView$TableauDamier.loadDamier(JeuxView.java:901) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at Jeux2Dames.klemix.com.JeuxView.resetJeuxView(JeuxView.java:130) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at Jeux2Dames.klemix.com.JeuxView.<init>(JeuxView.java:105) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at Jeux2Dames.klemix.com.Jeux.onCreate(Jeux.java:20) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 04-21 16:36:18.887: ERROR/AndroidRuntime(7305): ... 11 more Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 public JeuxView(Context context) { super(context); mIconsSize = ICON_SIZE; mPlayMaxX=5*mIconsSize; mPlayMaxY=2*mIconsSize; mCaseNoir = prepareBitmap(getResources().getDrawable(R.drawable.casenoir), mIconsSize, mIconsSize); mCaseBlanche = prepareBitmap(getResources().getDrawable(R.drawable.caseblanche), mIconsSize, mIconsSize); mPionPlayer = prepareBitmap(getResources().getDrawable(R.drawable.pionplayer), mIconsSize, mIconsSize); mPionIa = prepareBitmap(getResources().getDrawable(R.drawable.pionia), mIconsSize, mIconsSize); mDamePlayer = prepareBitmap(getResources().getDrawable(R.drawable.dameplayer), mIconsSize, mIconsSize); mDameIa = prepareBitmap(getResources().getDrawable(R.drawable.dameia), mIconsSize, mIconsSize); // mTextFile = prepareBitmap(getResources().getDrawable(R.drawable.txt_file), mIconsSize, // mIconsSize); mBoutonplay = prepareBitmap(getResources().getDrawable(R.drawable.grk_bouton_n),mPlayMaxX, mPlayMaxY); resetJeuxView(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); //SharedPreferences.Editor editor = prefs.edit(); mCodeLoad = prefs.getString("mCodeLoad", "1-20A10C20B"); } ..... public void JouerCoup() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getContext()); SharedPreferences.Editor editor = prefs.edit(); editor.putString("mCodeLoad", tabDamier.savdamier()); // ou putInt/putLong/putBoolean/... editor.commit(); si ca peut t'aider a m'aider :D Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 21 avril 2011 Share Posté(e) 21 avril 2011 C'est donc une erreur d'exécution, pas de compilation. Tu as un NullPointerException ligne 901, dans ton fichier JeuView.java, dans la méthode loadDamier... A quoi correspond cette ligne ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 dans resetJeuxView j'ai : tabDamier.loadDamier(mCodeLoad); qui n'est pas encore chargé qu'elle truffe ! Merci pour le coup de pouce Lien vers le commentaire Partager sur d’autres sites More sharing options...
KLeMiX Posté(e) 21 avril 2011 Auteur Share Posté(e) 21 avril 2011 Dernier question La class public class Preference extends PreferenceActivity { .... que l'on voit dans les tuto elle me sert a rien du coup ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 21 avril 2011 Share Posté(e) 21 avril 2011 Une PreferenceActivity sert à offrir un écran d'options pour l'utilisateur (paramétrage de l'application): ça ne semble pas être ton besoin Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.