java - 单击时递增 Int

标签 java android

这里是新手 Android 开发者。

我正在为 Android 创建一个基本的美式橄榄球记分应用程序。我正在尝试使用 XML 按钮的时钟来增加变量值。

由于某种原因,单击增量按钮时变量未按预期更新。我确信我错过了一些基本的东西,但似乎无法破解它。

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

 <Button
        android:id="@+id/home_touchdown_plus"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:onClick="homeTouchdownButtonPlus"
        android:text="+"
        app:layout_constraintStart_toEndOf="@+id/home_touchdowns_var"
        app:layout_constraintTop_toBottomOf="@+id/home_touchdowns" />



 package com.example.android.scorekeeper;

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

public class MainActivity extends AppCompatActivity {

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

    int homeScore = 0;
    int homeTouchdowns = 0;
    int homeXtraPoints = 0;
    int homeFieldGoals = 0;

    int visitorScore = 0;
    int visitorTouchdowns = 0;
    int visitorXtraPoints = 0;
    int visitorFieldGoals = 0;


    public void homeTouchdownButtonPlus(View view) {
        homeTouchdowns = homeTouchdowns + 1;
    }

    public void homeTouchdownsButtonMinus(View view) {
        homeTouchdowns = homeTouchdowns - 1;
    }
}

最佳答案

[已更新]

你的代码是对的,但还没有完成,你必须调用TextView的方法setText来更新 View 数据,并且你必须在你的代码中映射TextView,所以你的代码将是:

private TextView textview_home_touchdowns; //TextView where you will see the data

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

    textview_home_touchdowns = (TextView) //Mapping the TextView
                                   findViewById(R.id.home_touchdowns_var);
}

public void homeTouchdownButtonPlus(View view) {
    homeTouchdowns = homeTouchdowns + 1;
    textview_home_touchdowns.setText(homeTouchdowns+""); //Updating the TextView as String

}

public void homeTouchdownsButtonMinus(View view) {
    homeTouchdowns = homeTouchdowns - 1;
    textview_home_touchdowns.setText(homeTouchdowns+"");
}

谢谢@Martin De Simone用于更正

关于java - 单击时递增 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48512623/

相关文章:

java - 按钮保持焦点

javascript - "map.getBounds()"结果在 leaflet.js 中聚焦输入表单后发生变化

Android 服务 : Bind on demand vs. 在#onCreate() 上绑定(bind)

android - 单游标多对多查询不重复数据

android - 使用 Volley 进行异步发布时抛出 OutOfMemoryError "pthread_create (1040KB stack) failed: Try again"

java - 如何在用指数显示之前确定 DecimalFormat 的最大大小?

java - 在Java程序中使用结果集

java - 使用代理模式编写服务器是个好主意吗?

java - 为什么此Java代码不起作用?

java - 使用 service/dao 层模式的 Android 项目 "back-end"的最佳架构