如何在按下按钮时增加数字值?

时间:2019-06-02 06:16:34

标签: java android

我正在尝试创建一个应用程序,以在按下按钮时将屏幕上的数字值增加到下一个数字。它不起作用。我在下面给出了我的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);
    }
}

该按钮无效。

5 个答案:

答案 0 :(得分:1)

单击按钮时,增加a的值。然后将a传递给显示方法。最后,将值显示为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);
        }
}

答案 1 :(得分:0)

您必须增加计数器并设置新文本

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);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txt.setText(String.valueOf(++a));
            }
        });
    }
}

答案 2 :(得分:0)

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);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                a = a + 1;
                txt.setText(a);
            }
        });

    }

}

答案 3 :(得分:0)

如果我没记错的话,我们就不能以某种方法调用onClickListener。 无论如何,将按钮中的代码更改为下一个即可。

int a = 0;

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        a = a + 1;
        txt.setText(a);
    }
});

在这种情况下,该代码会有所帮助。因为当我们单击按钮时,它始终将值a设为1。

答案 4 :(得分:-2)

单击按钮上的时,增加a的值并显示为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++;
                          txt.setText(a+"");
                    }
            });
         }
    }