我通过Android Studio编写一个简单的应用程序,但是当我在智能手机上运行它时,它不会在tv_kq(textView)上显示结果。我不知道错误在哪里。请帮帮我。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button)findViewById(R.id.button);
et_a = (EditText) findViewById(R.id.editText);
et_b = (EditText) findViewById(R.id.editText2);
et_c = (EditText) findViewById(R.id.editText3);
tv_kq = (TextView) findViewById(R.id.textView4);
bt1.setOnClickListener(new click_ok());
}
class click_ok implements Button.OnClickListener{
public void OnClick(View v){
int a = Integer.parseInt(et_a.getText().toString());
int b = Integer.parseInt(et_b.getText().toString());
int c = Integer.parseInt(et_c.getText().toString());
int delta = b * b - 4 * a * c;
if (a == 0)
{
if (b == 0)
{
if (c==0) tv_kq.setText("Phương trình có vô số nghiệm");
else tv_kq.setText("Phương trình vô nghiệm");
}
else tv_kq.setText("Phương trình có 1 nghiệm: " +(-c/b));
}
else
{
if (delta < 0 ) tv_kq.setText("Phương trình vô nghiệm");
else if (delta == 0 ) tv_kq.setText("Phương trình có nghiệm kép: "+ (-b/(2*a)));
else if (delta > 0) tv_kq.setText("Phương trình có 2 nghiệm phân biệt: "+ (((-b)+Math.sqrt(delta))/(2*a))+" và "+(((-b)-Math.sqrt(delta))/(2*a)));
}
}
答案 0 :(得分:0)
尝试更改此内容:bt1.setOnClickListener(new click_ok());
到:bt1.setOnClickListener(this);
并使用标准的onClick回调:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
// do stuff
break;
}
}
答案 1 :(得分:0)
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
int a = Integer.parseInt(et_a.getText().toString());
int b = Integer.parseInt(et_b.getText().toString());
int c = Integer.parseInt(et_c.getText().toString());
int delta = b * b - 4 * a * c;
if (a == 0)
{
if (b == 0)
{
if (c==0) tv_kq.setText("Phương trình có vô số nghiệm");
else tv_kq.setText("Phương trình vô nghiệm");
}
else tv_kq.setText("Phương trình có 1 nghiệm: " +(-c/b));
}
else
{
if (delta < 0 ) tv_kq.setText("Phương trình vô nghiệm");
else if (delta == 0 ) tv_kq.setText("Phương trình có nghiệm kép: "+ (-b/(2*a)));
else if (delta > 0) tv_kq.setText("Phương trình có 2 nghiệm phân biệt: "+ (((-b)+Math.sqrt(delta))/(2*a))+" và "+(((-b)-Math.sqrt(delta))/(2*a)));
}
}
});
onCreate
中的
答案 2 :(得分:0)
尝试像这样添加它将解决您的错误
公共类MainActivity扩展Activity实现View.OnClickListener
答案 3 :(得分:0)
bt1.setOnClickListener(this);
//dont forget to implement View.OnClickListener to your mainActivity
然后使用onClick回调:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
// do stuff
int a = Integer.parseInt(et_a.getText().toString());
int b = Integer.parseInt(et_b.getText().toString());
int c = Integer.parseInt(et_c.getText().toString());
int delta = b * b - 4 * a * c;
if (a == 0)
{
if (b == 0)
{
if (c==0) tv_kq.setText("Phương trình có vô số nghiệm");
else tv_kq.setText("Phương trình vô nghiệm");
}
else tv_kq.setText("Phương trình có 1 nghiệm: " +(-c/b));
}
else
{
if (delta < 0 ) tv_kq.setText("Phương trình vô nghiệm");
else if (delta == 0 ) tv_kq.setText("Phương trình có nghiệm kép: "+ (-b/(2*a)));
else if (delta > 0) tv_kq.setText("Phương trình có 2 nghiệm phân biệt: "+ (((-b)+Math.sqrt(delta))/(2*a))+" và "+(((-b)-Math.sqrt(delta))/(2*a)));
}
break;
}
}