2016-07-11 2 views
0

Ich versuche, eine einfache Quiz-App zu erstellen, die Benutzer wählen wird, was sie denken, die richtigen Antworten sind und wenn sie auf die Schaltfläche Senden klicken, können sie ihre Punktzahl jeweils sehen Zeit. Die Quizfragen sind in CheckBoxes und radioButtons. Das Problem ist, dass ich nicht weiß, wie man den Punktestand über die Schaltfläche auf dem Bildschirm jedes Mal anzeigt, wenn der Benutzer auf die Schaltfläche klickt. Vielen Dank für jede Hilfe (dieses Ding 3 Tage versuchen!)Wie eine Schaltfläche zeigt das Ergebnis abhängig von RadioButtons Benutzerauswahl in Android

MainActivity.java 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.CheckBox; 
import android.widget.RadioButton; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 

    String Name; 
    int score = 0; 
    String rightAnswer = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void onCheckboxClicked(View view) { 

     //This method is called when the checkBox is clicked 

     //first right box 
     CheckBox Aristotle = (CheckBox) findViewById(R.id.firstLeftCheckBox); 
     boolean hasAristotle = Aristotle.isChecked(); 

     //first left box 
     CheckBox Pythagoras = (CheckBox) findViewById(R.id.firstRightCheckBox); 
     boolean hasPythagoras = Pythagoras.isChecked(); 

     //second left box 
     CheckBox William_McKinley = (CheckBox) findViewById(R.id.secondLeftCheckBox); 
     boolean hasWilliamMcKinley = William_McKinley.isChecked(); 

     //second right box 
     CheckBox Abraham_Lincoln = (CheckBox) findViewById(R.id.secondRightCheckBox); 
     boolean hasAbraham_Lincoln = Abraham_Lincoln.isChecked(); 

     //third left box 
     CheckBox China = (CheckBox) findViewById(R.id.thirdLeftCheckBox); 
     boolean hasChina = China.isChecked(); 

     //third right box 
     CheckBox Thailand = (CheckBox) findViewById(R.id.thirdRightCheckBox); 
     boolean hasThailand = Thailand.isChecked(); 

     //fourth left box 
     CheckBox Louis_XIV = (CheckBox) findViewById(R.id.fourthLeftCheckBox); 
     boolean hasLouis_XIV = Louis_XIV.isChecked(); 

     //fourth right box 
     CheckBox Michael_I = (CheckBox) findViewById(R.id.fourthRightCheckBox); 
     boolean hasMichael_I = Michael_I.isChecked(); 

     //fifth left box 
     CheckBox threeHundredThirty = (CheckBox) findViewById(R.id.fifthLeftCheckBox); 
     boolean hasthreeHundredThirty = threeHundredThirty.isChecked(); 

     //fifth right box 
     CheckBox threeHundredThirtySix = (CheckBox) findViewById(R.id.fifthRightCheckBox); 
     boolean hasthreeHundredThirtySix = threeHundredThirtySix.isChecked(); 

     //sixth left box 
     CheckBox universityOfZurich = (CheckBox) findViewById(R.id.sixthLeftCheckBox); 
     boolean hasuniversityOfZurich = universityOfZurich.isChecked(); 

     //sixth right box 
     CheckBox universityOfGermany = (CheckBox) findViewById(R.id.sixthRightCheckBox); 
     boolean hasuniversityOfGermany = universityOfGermany.isChecked(); 

     boolean checked = ((CheckBox) view).isChecked(); 
     switch (view.getId()) { 
      //display a toast message all right answers 
      case R.id.firstLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.secondRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.thirdLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.fourthLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.fifthRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.sixthLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      //display a toast message for all wrong answers 
      case R.id.firstRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.secondLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.thirdRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.fourthRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.fifthLeftCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.sixthRightCheckBox: 
       if (checked) 
        Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
     } 
    } 

    //Radio Box 
    public void onRadioButtonClicked(View view) { 
     RadioButton astronomyRadioButton = (RadioButton) findViewById(R.id.astronomyRadioButton); 
     RadioButton philosophyRadioButton = (RadioButton) findViewById(R.id.philosophyRadioButton); 

     boolean checked = ((RadioButton)view).isChecked(); 
     switch (view.getId()){ 
      case R.id.astronomyRadioButton: 
       Toast.makeText(this, "Hooray!Your answer is right", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.philosophyRadioButton: 
       Toast.makeText(this, "Sorry, try again!", Toast.LENGTH_SHORT).show(); 
       break; 
}}} 
activity_main.xml 
<ScrollView 
    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" 
    tools:context="com.allyouask.hungryforhistory.MainActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <EditText 
      android:id="@+id/nameField" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fontFamily="sans-serif-light" 
      android:inputType="text" 
      android:hint="Name" 
      android:textColor="#EF6C00" 
      android:textSize="15sp"/> 

     <TextView 
      android:id="@+id/welcomeMessage" 
      style="@style/WelcomeScreenText" 
      android:fontFamily="sans-serif-light" 
      android:text="Welcome to Hungry For History!\n   Let's get started!"/> 

     <TextView 
      android:id="@+id/firstQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/welcomeMessage" 
      android:paddingLeft="5dp" 
      android:text="Who was born in Ancient City Stagira, Greece?"/> 

     <CheckBox 
      android:id="@+id/firstLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/firstQuestion" 
      android:text="Aristotle" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/firstRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/firstQuestion" 
      android:layout_toRightOf="@+id/firstLeftCheckBox" 
      android:text="Pythagoras" 
      android:onClick="onCheckboxClicked"/> 
     <TextView 
      android:id="@+id/secondQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/firstLeftCheckBox" 
      android:paddingLeft="5dp" 
      android:text="Who said in his last speech:...?"/> 

     <CheckBox 
      android:id="@+id/secondLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/secondQuestion" 
      android:text="William McKinley" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/secondRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/secondQuestion" 
      android:layout_toRightOf="@+id/secondLeftCheckBox" 
      android:text="Abraham Lincoln" 
      android:onClick="onCheckboxClicked"/> 


     <TextView 
      android:id="@+id/thirdQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_below="@+id/secondLeftCheckBox" 
      android:paddingLeft="5dp" 
      android:text="Where the An Lushan Rebellion took place?"/> 

     <CheckBox 
      android:id="@+id/thirdLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/thirdQuestion" 
      android:text="China" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/thirdRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/thirdQuestion" 
      android:layout_toRightOf="@+id/thirdLeftCheckBox" 
      android:text="Thailand" 
      android:onClick="onCheckboxClicked"/> 

     <TextView 
      android:id="@+id/fourthQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_below="@+id/thirdLeftCheckBox" 
      android:text="Who was the most famous exemplar of absolute monarchy in France?"/> 

     <CheckBox 
      android:id="@+id/fourthLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/fourthQuestion" 
      android:text="Louis XIV" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/fourthRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/fourthQuestion" 
      android:layout_toRightOf="@+id/fourthLeftCheckBox" 
      android:text="Michael I" 
      android:onClick="onCheckboxClicked"/> 

     <TextView 
      android:id="@+id/fifthQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_below="@+id/fourthLeftCheckBox" 
      android:text="When Alexander The Great lived?"/> 

     <CheckBox 
      android:id="@+id/fifthLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/fifthQuestion" 
      android:text="330-323 BC" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/fifthRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/fifthQuestion" 
      android:layout_toRightOf="@+id/fifthLeftCheckBox" 
      android:text="336-323 BC" 
      android:onClick="onCheckboxClicked"/> 

     <TextView 
      android:id="@+id/sixthQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_below="@+id/fifthLeftCheckBox" 
      android:text="Where Albert Einstein studied?"/> 

     <CheckBox 
      android:id="@+id/sixthLeftCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/sixthQuestion" 
      android:text="University of Zurich" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:id="@+id/sixthRightCheckBox" 
      style="@style/CheckBoxStyle" 
      android:layout_below="@+id/sixthQuestion" 
      android:layout_toRightOf="@+id/sixthLeftCheckBox" 
      android:text="University of Germany" 
      android:onClick="onCheckboxClicked"/> 

     <TextView 
      android:id="@+id/seventhQuestion" 
      style="@style/QuestionsStyle" 
      android:layout_below="@+id/sixthLeftCheckBox" 
      android:text="What was the main interest of Democritus?"/> 

     <RadioGroup 
      android:id="@+id/radioButtons" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/seventhQuestion" 
      android:orientation="vertical"> 

      <RadioButton 
       android:id="@+id/astronomyRadioButton" 
       style="@style/CheckBoxStyle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Mathematics-Astronomy" 
       android:onClick="onRadioButtonClicked"/> 

      <RadioButton 
       android:id="@+id/philosophyRadioButton" 
       style="@style/CheckBoxStyle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Philosophy-Psychology" 
       android:onClick="onRadioButtonClicked"/> 
     </RadioGroup> 

     <Button 
      android:id="@+id/submit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/radioButtons" 
      android:layout_centerHorizontal="true" 
      android:layout_margin="10dp" 
      android:background="@color/backgroundColor" 
      android:text="Submit" 
      android:textColor="@color/textColor" 
      android:onClick="submitButton"/> 


    </RelativeLayout> 

</ScrollView>`enter code here` 

Antwort

0
Button btnSubmit; 

in onCreate():

btnSubmit = (Button) findViewById(R.id.submit); 
btnSubmit.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       btn.setText((String) score) 
      } 
     }); 

in Ihrem Switch(), wenn Antwort ist richtig hinzuzufügen:

score += X 
+0

Hallo Luca, Vielen Dank für Ihre Antwort. Ich versuche zu tun, was Sie vorschlagen, aber App-Crash. es ist mein Schlechter, aber ich finde nicht was. Hier ist mein Code wieder nach Änderung (ich ändern einige nur um es zu versuchen) – elZ

+0

Update mit Ihrem Code & Fehlerprotokoll, ich werde helfen, herauszufinden, was das Problem ist –

+0

Nein, nein, bitte, aktualisieren Sie Ihre Frage mit dem formatierten Code. Ich kann Code nicht so lesen. –

0

versuchen Sie dies

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      switch (checkedId){ 
       case R.id.rb1: 
       score+=5; 
       break; 

       case R.id.rb5: 
        score+=5; 
       break; 

       //………… 
      } 


     } 
    }); 
+0

Hallo Cgx, vielen Dank für Ihre Antwort, geschätzt ! – elZ

+0

Soll ich den setOnCheckedChangeListener in die onCreate-Methode schreiben und den Schalter dorthin transferieren? Entschuldigung, ich bin Neuling! – elZ

+0

ja du kannst! @ElenJ – Cgx

0

Erhöht die Punktzahl, wenn die Antwort richtig ist. Damit haben Sie das Ergebnis in Ihrer Score-Variable.

Sie müssen onClickListener für Ihre Übermittlungsschaltfläche wie folgt definieren: Definieren Sie die folgende Methode in Ihrer MainActivity-Klasse. Name der Methode sollte gleich sein, wie Sie in Ihrem Layout-Datei definiert hatte:

android:onClick="submitButton"

In Ihrem MainActivity:

public void submitButton(View v) { 
    //display score either using Toast or create a TextView in layout and display inside it. 

    } 

Für mehr Informationen für onClickListeners: API Guides

Sie können auch eine neue Aktivität zum Anzeigen der Partitur erstellen. Zum Starten einer neuen Aktivität und zum Weiterleiten von Daten siehe: How to send string from one activity to another?

Verwandte Themen