无法通过按钮更新TextView数量

时间:2018-02-01 16:40:29

标签: java android

Android Noob在这里。我试图通过加号和减号按钮递增和递减TextView。我在将方法连接到图像视图时遇到了麻烦。使用Java 9.假设我犯了一个基本错误。

<TextView
    android:id="@+id/home_tds_var"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="80dp"
    android:layout_marginTop="24dp"
    android:text="0"
    android:textSize="16sp"
    android:textStyle="bold"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/home_touchdowns_header" />

<Button
    android:id="@+id/home_td_plus"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:text="+"
    app:layout_constraintStart_toEndOf="@+id/home_tds_var"
    app:layout_constraintTop_toBottomOf="@+id/home_touchdowns_header"
    android:onClick="homeTDButtonPlus"/>
    package com.example.android.scorekeeper;

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

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

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

    int homeTouchdowns = 0;

    public void homeTDButtonPlus(View view) {
        homeTouchdowns = homeTouchdowns + 1;
        TextView home_tds_var = (TextView) findViewById(R.id.home_touchdowns_var);
        home_tds_var.setText(homeTouchdowns);
        //Updating the View
        //tvId.setText(String.valueOf(homeTouchdowns));
    }

}

3 个答案:

答案 0 :(得分:0)

根据您的xml代码,您的findViewById() ID不正确:

TextView home_tds_var = (TextView) findViewById(R.id.home_touchdowns_var);

应该是:

TextView home_tds_var = (TextView) findViewById(R.id.home_tds_var);

我必须说,在xml布局中使用onClick是不鼓励的。您应该在java代码中创建侦听器以将视图与其他应用程序层分离。一个简单的例子:

TextView home_tds_var;
int homeTouchdowns = 0;

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

    home_tds_var = (TextView) findViewById(R.id.home_tds_var);

    Button btn = (Button) findViewById(R.id.home_td_plus);
    btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
              // Perform action on click   
                homeTouchdowns = homeTouchdowns + 1;
                home_tds_var.setText(homeTouchdowns);
            }
          });
}

答案 1 :(得分:0)

更改

crontab -e

TextView home_tds_var = (TextView) findViewById(R.id.home_touchdowns_var);

答案 2 :(得分:0)

 public void incrementHomeTdsVar(View view) {
    final TextView homeTdsView = findViewById(R.id.home_tds_var);

    int newValue = Integer.parseInt(homeTdsView.getText().toString()) + 1;

    homeTdsView.setText(String.valueOf(newValue));


    /* Home Score + 7 Increment */
    final TextView homeScoreView = findViewById(R.id.home_score_var);

    int homeScorePlus = Integer.parseInt(homeScoreView.getText().toString()) + 7;

    homeScoreView.setText(String.valueOf(homeScorePlus));