2016-07-11 12 views
1

私は単純なクイズアプリを作成しようとしています。リセットボタンが必要です。ユーザーがリセットボタンをクリックするとスコアが0になるはずです。それを理解することはできません。 助けてくれてありがとう!あなたのMainActivity.onCreate()メソッドでボタンをリセットしてアンドロイドでスコアを維持する方法

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

'アンドロイドです:onClickのは= XMLで "OnClickResetは、"' 'アンドロイドする必要があります:のonClick = "resetScore"'したり、Java関数は 'OnClickReset()'と呼ばれるべきです。彼らは同じ名前である必要があります。この構文がどこから得られたかはわかりません。 – codeMagic

+0

'resetScore'は常に0です。値を決して変更しない変数を作成するのは意味がありません。 –

+0

こんにちはcodeMagic、私はあなたが提案したが、リセットボタンをクリックすると、アプリケーションがクラッシュする。 – elZ

答えて

0

ゲーム中にスコアを追加する際に 'score'変数を使用している場合、 'resetScore'ではなく、ボタンを押すとスコアを0に設定する必要があります。

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

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

あなたのエラーログを読んで、あなたはまた、この代わりのようなのTextViewを宣言しようとすることができます:

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

あなたはのsubmitButtonためOnClicklistenerを追加しました。 resetButtonについても同じ操作を行います。そのボタンの名前を小文字の「resetButton」に変更してください。

+0

これは 'camelCase'です。小文字ではありません:https://en.wikipedia.org/wiki/Letter_case#Special_case_styles –

+0

こんにちはbotzek、あなたが言ったことはいいと思いますが、私はメインでresetButtonを作成するときにどのようにスコアを置くことができますか"submitAnswer"ボタンからゼロまで? – elZ

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))); 
      } 
     }); 
    } 
関連する問題