How reset the button keep the score in android

时间:2016-07-11 19:16:08

标签: java 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>

3 个答案:

答案 0 :(得分:0)

In your MainActivity.onCreate() method you added an OnClicklistener for submitButton. Do the same for resetButton. And please rename that button to lower case 'resetButton'.

答案 1 :(得分:0)

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() {

答案 2 :(得分:0)

最后,resetButton工作。这是我的MainActivity.java代码

public class MainActivity extends AppCompatActivity {

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

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

         EditText nameField = (EditText)findViewById(R.id.nameField);
         String name = nameField.getText().toString();

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