KLeMiX Posted March 29, 2011 Share Posted March 29, 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. Link to comment Share on other sites More sharing options...
arnouf Posted April 3, 2011 Share Posted April 3, 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 ? Link to comment Share on other sites More sharing options...
KLeMiX Posted April 11, 2011 Author Share Posted April 11, 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. Link to comment Share on other sites More sharing options...
chpil Posted April 11, 2011 Share Posted April 11, 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 Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 2011 Quand j'essaie de faire cela dans ma vue ca ne compile pas Link to comment Share on other sites More sharing options...
chpil Posted April 21, 2011 Share Posted April 21, 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...) Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 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 Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 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 Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 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 Link to comment Share on other sites More sharing options...
chpil Posted April 21, 2011 Share Posted April 21, 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 ? Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 2011 dans resetJeuxView j'ai : tabDamier.loadDamier(mCodeLoad); qui n'est pas encore chargé qu'elle truffe ! Merci pour le coup de pouce Link to comment Share on other sites More sharing options...
KLeMiX Posted April 21, 2011 Author Share Posted April 21, 2011 Dernier question La class public class Preference extends PreferenceActivity { .... que l'on voit dans les tuto elle me sert a rien du coup ? Link to comment Share on other sites More sharing options...
chpil Posted April 21, 2011 Share Posted April 21, 2011 Une PreferenceActivity sert à offrir un écran d'options pour l'utilisateur (paramétrage de l'application): ça ne semble pas être ton besoin Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.