Je dois créer une disposition de table qui contient seulement deux rangées et deux colonnes. Le but est de créer un jeu comme "le millionnaire" où le joueur peut choisir la bonne réponse. Donc j'utilise la table mise en page pour les quatre réponses. Les réponses sont affichées comme:comment créer une disposition de table
A,C B,D
Si je réponds A, mais la bonne réponse sont C ou D, j'ai ceci:
http://tinypic.com/view.php?pic=33w33oo&s=5
Mais si je réponds A, mais la bonne réponse est B, j'ai ceci:
http://i40.tinypic.com/5wfg55.jpg
Dans ce cas, pourquoi les deux boutons apparaissent de cette façon ???
Voici mon code xml:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res/com.example.applicazionescienza"
android:id="@+id/tabella"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom|center"
android:background="@drawable/sfondo"
android:gravity="bottom|center"
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=".Gioca" >
<TextView
android:id="@+id/domanda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:alpha="0.8"
android:background="@drawable/bottonedomanda"
android:text="TextView" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:gravity="bottom"
android:shrinkColumns="*"
android:stretchColumns="*" >
<TableRow
android:id="@+id/tableRow4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="8dp" >
<Button
android:id="@+id/buttonA"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:alpha="0.6"
android:background="@drawable/bottonerisposta"
android:gravity="center"
android:maxWidth="64dp"
android:minWidth="64dip"
android:textSize="11sp"
android:width="0px" />
<Button
android:id="@+id/buttonC"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:alpha="0.6"
android:background="@drawable/bottonerisposta"
android:gravity="center"
android:maxWidth="64dp"
android:textSize="11sp"
android:width="0px" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/buttonB"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:alpha="0.6"
android:background="@drawable/bottonerisposta"
android:gravity="center"
android:maxWidth="64dp"
android:minWidth="64dip"
android:textSize="11sp"
android:width="0px" />
<Button
android:id="@+id/buttonD"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:alpha="0.6"
android:background="@drawable/bottonerisposta"
android:gravity="center"
android:maxWidth="64dp"
android:textSize="11sp"
android:width="0px" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/punteggio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bottonedomanda" />
</TableLayout>
Ceci est mon code dans l'activité que lorsque le bouton A est cliqué créer une nouvelle AlertDialog. Ce cose est seulement la méthode quand on clique sur le bouton A.
if(v.getId()==R.id.buttonA){
a.setBackgroundResource(R.drawable.bottonerispostaselezionato);
b.setBackgroundResource(R.drawable.bottonedomanda);
c.setBackgroundResource(R.drawable.bottonedomanda);
d.setBackgroundResource(R.drawable.bottonedomanda);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
AlertDialog.Builder builder = new AlertDialog.Builder(
context);
builder.setTitle("Conferma");
builder.setMessage("Vuoi confermare la risposta A?");
builder.setCancelable(false);
builder.setNegativeButton("Annulla",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
a.setBackgroundResource(R.drawable.bottonedomanda);
b.setBackgroundResource(R.drawable.bottonedomanda);
c.setBackgroundResource(R.drawable.bottonedomanda);
d.setBackgroundResource(R.drawable.bottonedomanda);
}
});
builder.setPositiveButton("Prosegui",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
Integer rispostaEsatta = arrayRisposte
.get(indiceCorrente);
if (rispostaEsatta == 0) {//if the correct answer is button A
score = score + domandaGiusta;
tv.setText("RISPOSTA CORRETTA PUNTEGGIO: "+score);
a.setBackgroundResource(R.drawable.bottonerispostacorretto);// set background green
Log.i("Risposta esatta complimenti",
"sdfd");
} else {
a.setBackgroundResource(R.drawable.botteerrato);// set background red
score = score - domandaSbagliata;
tv.setText("RISPOSTA ERRATA PUNTEGGIO: "+score);
switch (rispostaEsatta) {// if button A is wrong I know who is the correct button...button A=0,B=1,C=2,D=3;
case 1:// button B correct but user click on button A
a.setBackgroundResource(R.drawable.botteerrato);
b.setBackgroundResource(R.drawable.bottonerispostacorretto);
// c.setBackgroundResource(R.drawable.bottonedomanda);
// d.setBackgroundResource(R.drawable.bottonedomanda);
Log.i("lunghezza altezza", String.valueOf(a.getWidth())+" "+String.valueOf(a.getHeight()));
Log.i("lunghezza altezza", String.valueOf(b.getWidth())+" "+String.valueOf(b.getHeight()));
Log.i("lunghezza altezza", String.valueOf(c.getWidth())+" "+String.valueOf(c.getHeight()));
Log.i("lunghezza altezza", String.valueOf(d.getWidth())+" "+String.valueOf(d.getHeight()));
break;
case 2://Button C correct but user click button A
c.setBackgroundResource(R.drawable.bottonerispostacorretto);
b.setBackgroundResource(R.drawable.bottonedomanda);
d.setBackgroundResource(R.drawable.bottonedomanda);
break;
case 3:// button D correct but user click button A
d.setBackgroundResource(R.drawable.bottonerispostacorretto);
c.setBackgroundResource(R.drawable.bottonedomanda);
b.setBackgroundResource(R.drawable.bottonedomanda);
break;
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Thread t=new Thread(){
public void run(){
runOnUiThread(new Runnable(){
public void run(){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(numeroDomande<2){
numeroDomande++;
arrayDomande.remove(indiceCorrente);
arrayRisposte.remove(indiceCorrente);
immaggini.remove(indiceCorrente);
scegliDomanda();
} else {
int v=i+1;
Intent i = new Intent(context,
Livello.class);
i.putExtra("livello", v);
i.putExtra("punteggio",score);
startActivity(i);
}
}
});
}
};
t.start();
}
});
builder.create().show();
Log.i("Lo score è ", String.valueOf(score));
}
Aidez-moi s'il vous plaît!
Je copie votre code dans Eclipse, mais il est la même chose avec le même problème .... – francedema
Avez-vous couru ce code sur l'appareil Android? Je viens de créer un projet Android avec cette mise en page et cela fonctionne. Peut-être, ce problème peut se produire en raison de votre façon de manipuler les boutons pour définir comme faux ou correct. Comment tu fais ça? –
Je modifie le bouton d'arrière-plan en fonction de la réponse correcte.Si le bouton actuel est une mauvaise réponse le bouton d'arrière-plan est rouge, si le bouton actuel est une réponse correcte, le bouton d'arrière-plan est vert. J'ai mis votre code xml mais si je sélectionne le bouton A mais la bonne réponse est le bouton B j'ai le même problème ... J'ai modifié mon code dans le post! – francedema