android - 其他条件未被调用

标签 android if-statement

我有一个 if 条件,它检查 edittext 是否为空,如果为空,则会引发警报。但是当我在编辑文本中输入一些值时,它也会给我警报

package com.example.calculator;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Calci extends Activity {
    TextView t1;
    EditText e1, e2;
    Button add, sub, mul, div;
    Context c=this;

    String b, a;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calci);
        e1 = (EditText) findViewById(R.id.EditText01);
        e2 = (EditText) findViewById(R.id.EditText02);
        add = (Button) findViewById(R.id.add);
        sub = (Button) findViewById(R.id.sub);
        mul = (Button) findViewById(R.id.mul);
        div = (Button) findViewById(R.id.div);
        t1 = (TextView) findViewById(R.id.textView1);
        a = e1.getText().toString();
        b = e2.getText().toString();
add.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        if (a.equals("") || b.equals("")){

            AlertDialog.Builder a1 = new AlertDialog.Builder(c);
                // Setting Dialog Title
                a1.setTitle("Alert Dialog");
                // Setting Dialog Message
                a1.setMessage("PLEASE ENTER SOMETHING");
                a1.setPositiveButton("yes",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int button1) {
                                // if this button is clicked, close
                                // current activity
                                dialog.cancel();
                            }
                            });

                // Showing Alert Message
                AlertDialog alertDialog = a1.create();
                a1.show();

            } else {
            Log.d("sadasd", "msg");
            int result = Integer.parseInt(a) + Integer.parseInt(b);
            t1.setText(Integer.toString(result));
//          InputMethodManager imm = (InputMethodManager)getSystemService(
//                    Context.INPUT_METHOD_SERVICE);
//              imm.hideSoftInputFromWindow(add.getWindowToken(), 0);
        }

    }

});
    }
}

我有一个 if 条件来检查 edittext 是否为空,如果它为空则会引发警报。但是当我向 edittext 输入一些值时它也会给我警报。

最佳答案

你在 onCreate() 方法中做错了。您应该在 onClick() 方法中执行此操作,如下所示,

@Override
public void onClick(View arg0) 
{
    a = e1.getText().toString();
    b = e2.getText().toString();
    if (a.equals("") || b.equals(""))
    {

实际原因是在 OnCreate() 方法中 EditText 是空白的,因为您刚刚初始化了它。您需要的是插入文本初始化,然后检查条件。因此你需要在 onClick() 方法中编写 a = e1.getText().toString(); & b = e2.getText().toString(); 语句

关于android - 其他条件未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22503336/

相关文章:

linux - Bash 脚本不工作

php - 我怎样才能用更短的方式写出很多类似的 if 语句?

javascript - JavaScript 中 IF 语句的问题

android - 在 Android 模拟器上创建 SD 卡

java - 在 View 的 onCreateContextMenu 中创建上下文菜单时,AdapterView.AdapterContextMenuInfo 为 null

android - box2d (andengine gles2) PhysicsConnector 语法错误

unix - 如果条件未在 unix ksh 中返回所需的输出 - 返回错误的输出

java - 无法解析 Android Studio 上的 R.layout.splash

java - Android 中如何将 ASCII 字符转换为十进制数字?

java - 我们可以使用 '?' 运算符代替嵌套 if 条件吗?