首页 > 解决方案 > 如何在按钮按下时增加数字的值?

问题描述

我正在尝试创建一个应用程序,以在按下按钮时将屏幕上的数字值增加到下一个数字。它不工作。我在下面给出了我的 Java 和 XML 代码。

XML 代码:

<Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="250dp"
        android:text="+" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:paddingLeft="200dp"
        android:textSize="25sp"
        android:text="0" />

Java代码:

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

public class MainActivity extends AppCompatActivity {
    Button btn;
    TextView txt;

    protected int a = 1;

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

        btn = (Button) findViewById(R.id.button);
        txt = (TextView) findViewById(R.id.textView);

    }

    public void display(final int n) {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txt.setText(n);
            }
        });
    }

    public void increment(View view) {
        a = a + 1;
        display(a);
    }
}

该按钮没有反应。

标签: javaandroid

解决方案


单击按钮时,增加 的值a。然后传递ato display 方法。最后将值显示为textView

  public class MainActivity extends AppCompatActivity {
        Button btn;
        TextView txt;

        protected int a = 1;

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

            btn = (Button) findViewById(R.id.button);
            txt = (TextView) findViewById(R.id.textView);

            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   a++;
                   display(a);
                }
            });

        }

        public void display(int n) {
            txt.setText("" + n);
            //txt.setText(n);
        }
}

推荐阅读