Vous êtes un professionnel et vous avez besoin d'une formation ?
Programmation Java Les compléments
Voir le programme détaillé
Votre premier petit jeu Android : Mega Game
Mise en oeuvre de Mega Game
Définition du Layout de Mega Game
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
<?xml version= "1.0" encoding= "utf-8" ? >
<RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:tools= "http://schemas.android.com/tools"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:paddingBottom= "@dimen/activity_vertical_margin"
android:paddingLeft= "@dimen/activity_horizontal_margin"
android:paddingRight= "@dimen/activity_horizontal_margin"
android:paddingTop= "@dimen/activity_vertical_margin"
tools:context= "fr.koor.megagame.MainActivity" >
<TextView
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:textAppearance= "?android:attr/textAppearanceLarge"
android:text= "@string/lblTitle"
android:id= "@+id/textView"
android:layout_alignParentTop= "true"
android:layout_alignParentLeft= "true"
android:layout_alignParentStart= "true"
android:layout_alignParentRight= "true"
android:layout_alignParentEnd= "true" / >
<EditText
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:inputType= "number"
android:ems= "10"
android:id= "@+id/txtNumber"
android:layout_below= "@+id/textView"
android:layout_alignParentLeft= "true"
android:layout_alignParentStart= "true"
android:layout_toLeftOf= "@+id/btnCompare"
android:layout_toStartOf= "@+id/btnCompare" / >
<Button
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:text= "@string/btnCompare"
android:id= "@+id/btnCompare"
android:layout_below= "@+id/textView"
android:layout_alignRight= "@+id/textView"
android:layout_alignEnd= "@+id/textView" / >
<TextView
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:textAppearance= "?android:attr/textAppearanceLarge"
android:id= "@+id/lblResult"
android:layout_below= "@+id/btnCompare"
android:layout_alignParentLeft= "true"
android:layout_alignParentStart= "true"
android:layout_alignRight= "@+id/btnCompare"
android:layout_alignEnd= "@+id/btnCompare" / >
<ProgressBar
style= "?android:attr/progressBarStyleHorizontal"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:id= "@+id/pgbScore"
android:layout_alignParentLeft= "true"
android:layout_alignParentStart= "true"
android:layout_below= "@+id/lblResult"
android:layout_alignRight= "@+id/lblResult"
android:layout_alignEnd= "@+id/lblResult"
android:indeterminate= "false"
android:max= "10"
android:progress= "8" / >
<TextView
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:textAppearance= "?android:attr/textAppearanceLarge"
android:id= "@+id/lblHistory"
android:layout_below= "@+id/pgbScore"
android:layout_alignParentLeft= "true"
android:layout_alignParentStart= "true"
android:layout_alignParentBottom= "true"
android:layout_alignRight= "@+id/pgbScore"
android:layout_alignEnd= "@+id/pgbScore" / >
</RelativeLayout >
Le layout de l'activité : /res/layout/activity_main.xml
Contenu du fichier de chaînes de caractères
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<resources >
<string name= "app_name" > MegaGame V 1.0 </string >
<string name= "lblTitle" > Enter a value between 1 and 100: </string >
<string name= "btnCompare" > Compare </string >
<string name= "strGreater" > Please enter a greater value. </string >
<string name= "strLower" > Please enter a lower value. </string >
<string name= "strCongratulations" > Congratulations </string >
<string name= "strMessage" > Congratulations, You win in %d times. Do you want retry? </string >
<string name= "strYes" > Yes </string >
<string name= "strNo" > No </string >
</resources >
Le fichier de chaînes de caractères : /res/values/strings.xml
Implémentation de la classe d'activité
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
package fr.koor.megagame;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
private EditText txtNumber;
private Button btnCompare;
private TextView lblResult;
private ProgressBar pgbScore;
private TextView lblHistory;
private int searchedValue;
private int score;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtNumber = (EditText) findViewById( R.id.txtNumber );
btnCompare = (Button) findViewById( R.id.btnCompare );
lblResult = (TextView) findViewById( R.id.lblResult );
pgbScore = (ProgressBar) findViewById( R.id.pgbScore );
lblHistory = (TextView) findViewById( R.id.lblHistory );
btnCompare.setOnClickListener( btnCompareListener );
init();
NumberFormat formatter = NumberFormat.getCurrencyInstance();
double price = 1_000_000.01;
Log.i( "DEBUG" , formatter.format( price ) );
DateFormat dataFormatter = DateFormat.getDateTimeInstance();
Log.i( "DEBUG" , dataFormatter.format( new Date() ) );
}
private void init() {
score = 0;
searchedValue = 1 + (int ) (Math.random() * 100);
Log.i( "DEBUG" , "Searched value : " + searchedValue );
txtNumber.setText( "" );
pgbScore.setProgress( score );
lblResult.setText( "" );
lblHistory.setText( "" );
txtNumber.requestFocus();
}
private void congratulations() {
lblResult.setText( R.string.strCongratulations );
AlertDialog retryAlert = new AlertDialog.Builder( this ).create();
retryAlert.setTitle( R.string.app_name );
retryAlert.setMessage( getString(R.string.strMessage, score ) );
retryAlert.setButton( AlertDialog.BUTTON_POSITIVE, getString(R.string.strYes), new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
init();
}
});
retryAlert.setButton( AlertDialog.BUTTON_NEGATIVE, getString(R.string.strNo), new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
retryAlert.show();
}
private View.OnClickListener btnCompareListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i( "DEBUG" , "Button clicked" );
String strNumber = txtNumber.getText().toString();
if ( strNumber.equals( "" ) ) return ;
int enteredValue = Integer.parseInt( strNumber );
lblHistory.append( strNumber + "\r\n" );
pgbScore.incrementProgressBy( 1 );
score++;
if ( enteredValue == searchedValue ) {
congratulations();
} else if ( enteredValue < searchedValue ) {
lblResult.setText( R.string.strGreater );
} else {
lblResult.setText( R.string.strLower );
}
txtNumber.setText( "" );
txtNumber.requestFocus();
}
};
}
Implémentatation de la classe d'activité : MainActivity.java
Vous êtes un professionnel et vous avez besoin d'une formation ?
Programmation Java Les compléments
Voir le programme détaillé
2025 © SARL Infini Software - Tous droits réservés
Mentions légales
Les informations présentes dans ce site vous sont fournies dans le but de vous aider à acquérir les compétences nécessaires à
l'utilisation des langages ou des technologies considérés. Infini Software ne pourra nullement être tenu responsable de l'utilisation
des informations présentes dans ce site.
De plus, si vous remarquez des erreurs ou des oublis dans ce document, n'hésitez surtout pas à nous le signaler en envoyant un mail
à l'adresse : .
Les autres marques et les noms de produits cités dans ces documents sont la propriété de leurs éditeurs respectifs.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :