2013-03-14 72 views
1

这里是我的代码,我不知道我在做什么错。但它不工作!理想的情况是我想要的是,如果所有的textviews是空的,应该举杯“请填写详细信息”,否则“保存”,但有些怎么老是干杯“拯救”我想密码锁定我的应用程序,但它不工作

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

EditText et1; 
EditText et2; 
EditText et3; 
EditText et4; 
EditText et5; 
Button b; 

FileOutputStream fos1; 
FileOutputStream fos2; 
FileOutputStream fos3; 
FileOutputStream fos4; 


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

    et1=(EditText) findViewById(R.id.editText1); 
    et2=(EditText) findViewById(R.id.editText2); 
    et3=(EditText) findViewById(R.id.editText3); 
    et4=(EditText) findViewById(R.id.editText4); 
    et5=(EditText) findViewById(R.id.editText5); 

    b=(Button) findViewById(R.id.button1); 


    b.setOnClickListener(this); 
} 




@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    String password=et1.getText().toString(); 
    String confirmPassword=et2.getText().toString(); 
    String secQues=et3.getText().toString(); 
    String secAns=et4.getText().toString(); 
    String hint=et5.getText().toString(); 


    if(password!=null && confirmPassword!=null && secQues!=null && secAns!=null && hint!=null) 
    { 
     Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show(); 
    } 
    else 
    { 
     Toast.makeText(MainActivity.this, "Please fill all the details.", Toast.LENGTH_SHORT).show(); 
    } 
} 

} 

回答

1

的字符串将始终不null因为它们'由EditTexts生成。但是,您得到的字符串可以是长度为0的空字符串("")。这意味着您应该比较字符串的长度。 TextUtils will work much better here

if(!TextUtils.isEmpty(password) && !TextUtils.isEmpty(confirmPassword) && !TextUtils.isEmpty(secQues) && !TextUtils.isEmpty(secAns) && !TextUtils.isEmpty(hint)){ 
    Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show(); 
} 

而且因为你有很多的EditTexts,检查的更好的方式是通过使EditTexts的数组,然后循环和检查的长度。如果发现任何空白,将布尔标志设置为false并退出循环。

boolean noneEmpty = true; 

for (int x =0; x < editTextArray.length;x++) 
{ 
    if (TextUtils.isEmpty(editTextArray[x].getText())) 
    { 
    noneEmpty = false; 
    break; 
    } 
} 

if(noneEmpty){ 
    Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_SHORT).show(); 
} 
else{ 
    Toast.makeText(MainActivity.this, "Please fill all the details.", Toast.LENGTH_SHORT).show(); 
} 
相关问题