Java 为什么我的代码强制关闭?
我的代码从第一行到上面的setOnClickListener运行正常,但当我设置Click Listener时,我的活动被强制关闭。我已经试图纠正这一点 我想我的错误在onclick listener标记中 这段代码有什么问题Java 为什么我的代码强制关闭?,java,android,Java,Android,我的代码从第一行到上面的setOnClickListener运行正常,但当我设置Click Listener时,我的活动被强制关闭。我已经试图纠正这一点 我想我的错误在onclick listener标记中 这段代码有什么问题 package com.Learning.math; import java.util.Random; import android.app.Activity; import android.content.Intent; import android.os.Bund
package com.Learning.math;
import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Plus extends Activity {
private TextView num11;
private TextView num22;
public Integer no1;
public Integer no2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.plus_page);
// Set Numbers To TextView's
num11 = (TextView) findViewById(R.id.num1);
num22 = (TextView) findViewById(R.id.num2);
Intent iin = getIntent();
Bundle b = iin.getExtras();
if (b != null) {
final String numb1 = (String) b.get("from");
final String numb2 = (String) b.get("to");
Integer min = Integer.valueOf(numb1);
Integer max = Integer.valueOf(numb2);
Random r1 = new Random();
int random1 = r1.nextInt(max + -min) + min;
Random r2 = new Random();
int random2 = r2.nextInt(max - min) + min;
String str1 = String.valueOf(random1);
String str2 = String.valueOf(random2);
num11.setText(str1 + "");
num22.setText(str2 + "");
no1 = Integer.valueOf(str1);
no2 = Integer.valueOf(str2);
}
// Problem From this line
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
final EditText answerbox = (EditText) findViewById(R.id.answer_box);
String Answr = answerbox.getText().toString();
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Integer answer = Integer.valueOf(Answr);
if (answer == (no2 + no1)) {
num11.setText("OK OK OK ");
} else {
num11.setText("No No No");
}
}
});
}
}
试试这个:
//declare Button btn
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.plus_page);
//Your code here
//Added code
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(btnOnClick)
}
View.OnClickListener btnOnClick = new OnClickListener()
{
//Your code here
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//Your code here
}
});
编辑:忽略此项并发布错误日志。我没有完全正确地阅读您的代码。我以为您正在初始化按钮并在
onCreate
外部调用onClickListener
setOnClickListener
methodEditText answerbox
中的为空,因此在onCreate
方法中定义您的EditText answerbox
。作为
final EditText answerbox = (EditText) findViewById(R.id.answer_box);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String Answr = answerbox.getText().toString();
Integer answer = Integer.valueOf(Answr);
if (answer == (no2 + no1)) {
num11.setText("OK OK OK ");
} else {
num11.setText("No No No");
}
}
});
在何处取消单击?在
onCreate
之外,它就像一个函数。@user3760297乐于帮助,享受编码。我希望用户键入正确答案:1-更改版面背景颜色。2-向True flag添加一个步骤。:(:(声誉低于10的用户在提问后8小时内无法回答自己的问题。您可以回答2014年7月15日12:37:02上午。在此之前,请使用评论或编辑您的问题。