在OnClick Android上更改变量的值
我的布局中有两个按钮,当用户按下按钮1时,“数字”的值应更改为“2”,当用户按下按钮2时,“数字”的值应更改为“1”。但该值不变。 这是我的密码:在OnClick Android上更改变量的值,android,Android,我的布局中有两个按钮,当用户按下按钮1时,“数字”的值应更改为“2”,当用户按下按钮2时,“数字”的值应更改为“1”。但该值不变。 这是我的密码: public class test extends AppCompatActivity{ public int number ; private Button btn1; private Button btn2; @Override protected void onCreate(Bundle savedInstanceState) {
public class test extends AppCompatActivity{
public int number ;
private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
test();
}
void test()
{
if(number<1) {
number = 1;
}
Log.e("number value : ",String.valueOf(number));
if(number==1)
{
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
number=2;
Log.e("number value : ",String.valueOf(number));
}
});
}
if(number==2)
{
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
number=1;
Log.e("number value : ",String.valueOf(number));
}
});
}
}
公共类测试扩展了AppCompatActivity{
公共整数;
专用按钮btn1;
专用按钮btn2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(按钮)findViewById(R.id.btn1);
btn2=(按钮)findViewById(R.id.btn2);
test();
}
无效测试()
{
如果(数字试试这个
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
number=2;
Log.e("number value : ",String.valueOf(number));
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
number=1;
Log.e("number value : ",String.valueOf(number));
}
});
}
这部分代码根本不会被调用:
if(number==2)
{
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
number=1;
Log.e("number value : ",String.valueOf(number));
}
});
原因是条件if(number==2)
因为number实际上是1,所以不会调用此代码块,所以没有添加到btn2
的单击侦听器
在创建时设置click listener,它将非常有效。试试这个
void test()
{
if(number<1) { number = 1; }
Log.e("number value : ",String.valueOf(number));
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number == 1)
{
number=2;
Log.e("Button 1 number value : ",String.valueOf(number));
}
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number == 2)
{
number=1;
Log.e("Button 2 number value : ",String.valueOf(number));
}
}
});
}
void测试()
{
如果(数字试试这个
public class test extends AppCompatActivity{
public int number ;
private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
test();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number==1){
number=2;
}
Log.e("number value : ",String.valueOf(number));
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number==2){
number=1;
}
Log.e("number value : ",String.valueOf(number));
}
});
}
void test()
{
if(number<1) {
number = 1;
}
Log.e("number value : ",String.valueOf(number));
}
}
公共类测试扩展了AppCompatActivity{
公共整数;
专用按钮btn1;
专用按钮btn2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(按钮)findViewById(R.id.btn1);
btn2=(按钮)findViewById(R.id.btn2);
test();
btn1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
如果(数字==1){
数量=2;
}
Log.e(“数值:”,String.valueOf(number));
}
});
btn2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
如果(数字==2){
数字=1;
}
Log.e(“数值:”,String.valueOf(number));
}
});
}
无效测试()
{
if(numberWelcome to StackOverflow!请阅读用户指南,了解如何在发布问题之前提出一个好的问题(),感谢您的帮助。但是,您能否解释一下为什么if条件不起作用?
public class test extends AppCompatActivity{
public int number ;
private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
test();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number==1){
number=2;
}
Log.e("number value : ",String.valueOf(number));
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(number==2){
number=1;
}
Log.e("number value : ",String.valueOf(number));
}
});
}
void test()
{
if(number<1) {
number = 1;
}
Log.e("number value : ",String.valueOf(number));
}
}