如何添加onClick for按钮?

时间:2017-12-23 23:13:36

标签: android

我正在试图找出当我的AddThreeToTeamA按钮在点击时崩溃我的应用程序时我的应用程序崩溃的原因。我已经添加了我的XML和我的Java代码 我正在关注一个教程,但它显然没有崩溃,我尝试了几种不同的解决方案 任何暗示都将受到赞赏。

package com.themovingmonkey.courtcounter;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {


        int score = 0;
        int scoreTeamA;

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

        }
        public void addThreeForTeamA() {
            scoreTeamA = score + 3;
            displayForTeamA(scoreTeamA);
        }

        public void addTwoForTeamA() {
            scoreTeamA = score + 2;
            displayForTeamA(scoreTeamA);
        }

        public void addOneForTeamA() {
            scoreTeamA = score + 1;
            displayForTeamA(scoreTeamA);
        }
        public void displayForTeamA(int score) {
            TextView scoreView = (TextView) findViewById(R.id.Team_A_Score);
            scoreView.setText(String.valueOf(scoreTeamA));
        }


    }
      ////////////////////////////////////////////////////////////////
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical"
   >

  <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:text= "Team A"
      android:padding="4dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="0"
        android:padding="4dp"
        android:id="@+id/Team_A_Score"/>
  <Button
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="3 Points"
      android:layout_margin="8dp"
      android:onClick="addThreeForTeamA"
      />
  <Button
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="2 Points"
      android:layout_margin="8dp"
      android:onClick="addTwoForTeamA"
      />
  <Button
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="1 Point"
      android:layout_margin="8dp"
      android:onClick="addOneForTeamA"
      />
</LinearLayout>

1 个答案:

答案 0 :(得分:0)

使用android:onClick="someMethod"属性定义的所有方法。然后他们必须公开,并且应该传递View作为唯一参数,将您的方法更改为:

public void someMethod(View view){

  //Everything else!

}

您的方法目前还没有传递View作为唯一参数!