ElenJ ElenJ - 4 months ago 16
Java Question

How reset the button keep the score in android

I try to create a simple quiz app and I need to have a Reset Button.So,when user clicks on Reset Button score should goes to 0.But something goes wrong with my code and can't figure it.
Thanks for any help!

MainActivity.java

public class MainActivity extends AppCompatActivity {

String Name;
int score = 0;
int resetScore = 0;
Button submitButton;

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

submitButton = (Button) findViewById(R.id.submitAnswer);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
submitButton.setText("Your score is:" + score);
}
});
}

private void displayResult(int score) {
TextView result = (TextView)findViewById(R.id.score);
result.setText(String.valueOf(score));
}

public void resetScore(View view){
resetScore= 0;
displayResetScore(resetScore);
}

private void displayResetScore(int resetScore) {
TextView ResetButton = (TextView) findViewById(R.id.ResetButton);
ResetButton.setText(String.valueOf(resetScore));
}
}


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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:With malice toward none;...let us strive on to finish the work we are in;to bind up the nation's wounds;into care for him who shall have borne the battle and for his widow and his orphans?"/>

<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>

<TextView
android:id="@+id/score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>


<Button
android:id="@+id/submitAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/radioButtons"
android:layout_marginBottom="3dp"
android:background="@color/backgroundColor"
android:text="Submit"
android:textColor="@color/textColor"
android:onClick="OnClickSubmit"/>

<Button
android:id="@+id/ResetButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/submitAnswer"
android:layout_marginBottom="3dp"
android:onClick="OnClickReset"
android:background="@color/backgroundResetColor"
android:textColor="@color/textColor"
android:text="Reset"
android:textAllCaps="true"/>

</RelativeLayout>

</ScrollView>

Answer

If you're using the 'score' variable when adding score during the game, you have to set score to 0 when pressing the button, not 'resetScore'.

public void resetScore(View view){
    score = 0;
    displayResetScore(score);
}

 private void displayResetScore(int resetScore) {
    ResetButton.setText(String.valueOf(score));
}

Reading your error log, you could also try to declare the textview like this instead:

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

    submitButton = (Button) findViewById(R.id.submitAnswer);
    TextView ResetButton = (TextView) findViewById(R.id.ResetButton);

    submitButton.setOnClickListener(new View.OnClickListener() {
    ResetButton.setOnClickListener(new View.OnClickListener() {