Android Edittext只有零条目

时间:2015-11-24 09:58:41

标签: android string android-edittext integer zero

在我的edittext中,我需要检查它是否仅输入零。例如,我有一个edittext用于输入Bank的IFSc代码。它只接受字母和数字。因此,假设用户仅为14个字符输入零。我需要检查一下,我发现的一个解决方案是将字符串转换为整数并加在一起,是否为零意味着用户只为我编写的代码输入了zer,但它无法正常工作。任何人都可以帮我解决这个问题。

int ifno = Integer.parseInt(ifsc);
int sum = 0;

while (ifno == 0)
{
    sum = sum + ifno % 10;
    ifno = ifno / 10;
}

if(sum == 0)
{
    Toast.makeText(Neft_Details.this, "Not a valid IFSC Code", Toast.LENGTH_LONG).show();
}

4 个答案:

答案 0 :(得分:1)

我认为您需要更改while循环试试这个..

String ifsc = "00000000000000";
int ifno = Integer.parseInt(ifsc);
int sum  = 0;              
   while (ifno != 0){
            ifno = ifno / 10;
            sum = sum + ifno;
   }
   if(sum == 0){
        Toast.makeText(Neft_Details.this, "Not a valid IFSC Code", Toast.LENGTH_LONG).show();
       // System.out.println("Invalid value");
   }

答案 1 :(得分:0)

我为你做了一个非常简单的例子,它有效:

EditText info;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    info = (EditText)findViewById(R.id.infoNum);

    Button okButton = (Button)findViewById(R.id.okBtn);
    okButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            int infoINt = Integer.parseInt(info.getText().toString());
            if(infoINt == 0){
                Toast.makeText(getBaseContext(),"Not a valid IFSC Code",Toast.LENGTH_LONG).show();
            }else{
                // do your true logic here
            }

        }
    });

}

也许错误出现在您的逻辑区域中。

使用ValidationExpression也可以正常工作

答案 2 :(得分:0)

尝试使用Integer的valueOf()方法。以下是查找给定字符串的确切值的示例。

    String value = "000000";
    value = Integer.valueOf(value).toString();
    System.out.println("result for check: "+value);

Output:
0

希望这会对你有所帮助

答案 3 :(得分:0)

另一种方法是,您可以尝试在代码中定义这样的测试函数。

public static boolean isAllZeros(String text) {
    char zero = '0';
    for (int i=0; i<text.length()-1; i++) {
        if (!(text.charAt(i) == zero)) {
            return false;
        }
    }
    return true;
}

然后通过传递给此函数来测试在EditText中输入的字符串。这样您就可以避免将其解析为整数,并且可以直接检查输入的字符串。

if(Test.isAllzeros(editextString)) {
    Toast.makeText(Neft_Details.this, "Not a valid IFSC Code",
    Toast.LENGTH_LONG).show();    
} else {
    // Do whatever you want in here.
}