这是我的代码,我不知道我做错了什么。但它不起作用!理想情况下,我想要的是如果所有的文本视图都是空的,它应该干杯“请填写详细信息”或“保存”,但有些如何总是祝酒“保存”
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();
}
}
}
答案 0 :(得分:1)
字符串将始终不是null
,因为它们是由EditTexts生成的。但是,您获得的String可以是长度为0的空字符串(""
)。这意味着您应该比较String的长度。 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();
}