我在android中有5个EditTexts
供用户输入。我想知道我是否可以使用一种方法来检查所有5 EditTexts
是否为空。有没有办法做到这一点?
答案 0 :(得分:341)
我做过一次这样的事情;
EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
return;
}
答案 1 :(得分:171)
private boolean isEmpty(EditText etText) {
if (etText.getText().toString().trim().length() > 0)
return false;
return true;
}
或按每audrius
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
如果函数返回 false
表示edittext为not empty
并返回 true
表示edittext为empty
.. 。
答案 2 :(得分:133)
对于验证EditText,使用EditText#setError方法显示错误并检查空值或空值使用内置的android类TextUtils.isEmpty(strVar),如果strVar为null或零长度则返回true
EditText etUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = etUserName.getText().toString();
if(TextUtils.isEmpty(strUserName)) {
etUserName.setError("Your message");
return;
}
答案 3 :(得分:35)
试试这个:
EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
或使用TextUtils类,如下所示:
if(TextUtils.isEmpty(strUserName)) {
Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
return;
}
答案 4 :(得分:27)
参加聚会的时间已晚,但我只需要添加Android自己的TextUtils.isEmpty(CharSequence str)
如果字符串为null或0-length
,则返回true
因此,如果您将五个EditTexts放在一个列表中,那么完整的代码将是:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText was empty
// Do something fancy
}
}
答案 5 :(得分:19)
其他答案是正确的,但可以像
那样简短地进行if(editText.getText().toString().isEmpty()) {
// editText is empty
} else {
// editText is not empty
}
答案 6 :(得分:10)
试试这个
TextUtils.isEmpty(editText.getText());
答案 7 :(得分:7)
您可以使用length()
中的EditText
。
public boolean isEditTextEmpty(EditText mInput){
return mInput.length() == 0;
}
答案 8 :(得分:6)
我通常会做SBJ提出的建议,但反过来说。我只是通过检查肯定结果而不是双重否定来更容易理解我的代码。 你可能会问如何检查空的EdiTexts,但你真正想知道的是它是否有任何内容而不是它是空的。
像这样:
private boolean hasContent(EditText et) {
// Always assume false until proven otherwise
boolean bHasContent = false;
if (et.getText().toString().trim().length() > 0) {
// Got content
bHasContent = true;
}
return bHasContent;
}
作为SBJ我更喜欢返回“没有内容”(或false
)作为默认值以避免异常,因为我对内容进行了检查。这样,您绝对可以确定true
已被您的支票“批准”。
我也认为调用它的if
看起来也更清洁了:
if (hasContent(myEditText)) {
// Act upon content
} else {
// Got no content!
}
它非常依赖于偏好,但我发现这更容易阅读。 :)
答案 9 :(得分:4)
为什么不在EditText为空时禁用按钮?恕我直言这看起来更专业:
final EditText txtFrecuencia = (EditText) findViewById(R.id.txtFrecuencia);
final ToggleButton toggle = (ToggleButton) findViewById(R.id.toggleStartStop);
txtFrecuencia.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
toggle.setEnabled(txtFrecuencia.length() > 0);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
答案 10 :(得分:4)
if(TextUtils.isEmpty(textA.getText())){
showToast(it's Null");
}
你可以像我的例子一样使用TextUtils.isEmpty! 祝你好运
答案 11 :(得分:4)
我使用此方法,使用trim()
来避免空格:
EditText myEditText = (EditText) findViewById(R.id.editUsername);
if ("".equals(myEditText.getText().toString().trim()) {
Toast.makeText(this, "You did not enter a value!", Toast.LENGTH_LONG).show();
return;
}
如果你有几个EditText
的例子if (("".equals(edtUser.getText().toString().trim()) || "".equals(edtPassword.getText().toString().trim()))){
Toast.makeText(this, "a value is missing!", Toast.LENGTH_LONG).show();
return;
}
答案 12 :(得分:3)
private boolean hasContent(EditText et) {
return (et.getText().toString().trim().length() > 0);
}
答案 13 :(得分:3)
我使用了TextUtils
:
if (TextUtils.isEmpty(UsernameInfo.getText())) {
validationError = true;
validationErrorMessage.append(getResources().getString(R.string.error_blank_username));
}
答案 14 :(得分:2)
我想做类似的事情。但是从编辑文本中获取文本值并将其与(str=="")
进行比较并不适合我。所以更好的选择是:
EditText eText = (EditText) findViewById(R.id.etext);
if (etext.getText().length() == 0)
{//do what you want }
像魅力一样工作。
答案 15 :(得分:2)
您可以为每个编辑文本调用此函数:
public boolean isEmpty(EditText editText) {
boolean isEmptyResult = false;
if (editText.getText().length() == 0) {
isEmptyResult = true;
}
return isEmptyResult;
}
答案 16 :(得分:2)
使用If ELSE If条件尝试此操作。您可以轻松验证您的editText字段。
if(TextUtils.isEmpty(username)) {
userNameView.setError("User Name Is Essential");
return;
} else if(TextUtils.isEmpty(phone)) {
phoneView.setError("Please Enter Your Phone Number");
return;
}
答案 17 :(得分:2)
您还可以在一个If条件中检查所有EditText字符串:像这样
if (mString.matches("") || fString.matches("") || gender==null || docString.matches("") || dString.matches("")) {
Toast.makeText(WriteActivity.this,"Data Incomplete", Toast.LENGTH_SHORT).show();
}
答案 18 :(得分:1)
将TextUtils.isEmpty("Text here");
用于单行代码
答案 19 :(得分:1)
"看看这个我相信你会喜欢它。"
log_in.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
username=user_name.getText().toString();
password=pass_word.getText().toString();
if(username.equals(""))
{
user_name.setError("Enter username");
}
else if(password.equals(""))
{
pass_word.setError("Enter your password");
}
else
{
Intent intent=new Intent(MainActivity.this,Scan_QRActivity.class);
startActivity(intent);
}
}
});
答案 20 :(得分:1)
EditText txtUserID = (EditText) findViewById(R.id.txtUserID);
String UserID = txtUserID.getText().toString();
if (UserID.equals(""))
{
Log.d("value","null");
}
您将在LogCat ....
中看到该消息答案 21 :(得分:0)
EditText edt=(EditText)findViewById(R.id.Edt);
String data=edt.getText().toString();
if(data=="" || data==null){
Log.e("edit text is null?","yes");
}
else {
Log.e("edit text is null?","no");
}
对所有五个编辑文本都这样做
答案 22 :(得分:0)
要将editText设为空,请尝试另一种简单方法:
String star = editText.getText().toString();
if (star.equalsIgnoreCase("")) {
Toast.makeText(getApplicationContext(), "Please Set start no", Toast.LENGTH_LONG).show();
}
答案 23 :(得分:0)
您可以使用setOnFocusChangeListener
,它会检查焦点更改时间
txt_membername.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if (arg1) {
//do something
} else {
if (txt_membername.getText().toString().length() == 0) {
txt_membername
.setError("Member name is not empty, Plz!");
}
}
}
});
答案 24 :(得分:0)
if ( (usernameEditText.getText()+"").equals("") ) {
// Really just another way
}
答案 25 :(得分:0)
我更喜欢使用ButterKnife列表绑定,然后在列表中应用操作。例如,对于EditTexts的情况,我在实用程序类中定义了以下自定义操作(在本例中为ButterKnifeActions
)
public static <V extends View> boolean checkAll(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = true;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) && hasProperty;
}
return hasProperty;
}
public static <V extends View> boolean checkAny(List<V> views, ButterKnifeActions.Check<V> checker) {
boolean hasProperty = false;
for (int i = 0; i < views.size(); i++) {
hasProperty = checker.checkViewProperty(views.get(i), i) || hasProperty;
}
return hasProperty;
}
public interface Check<V extends View> {
boolean checkViewProperty(V view, int index);
}
public static final ButterKnifeActions.Check<EditText> EMPTY = new Check<EditText>() {
@Override
public boolean checkViewProperty(EditText view, int index) {
return TextUtils.isEmpty(view.getText());
}
};
在视图代码中,我将EditTexts绑定到列表,并在需要检查视图时应用操作。
@Bind({R.id.edit1, R.id.edit2, R.id.edit3, R.id.edit4, R.id.edit5}) List<EditView> edits;
...
if (ButterKnifeActions.checkAny(edits, ButterKnifeActions.EMPTY)) {
Toast.makeText(getContext(), "Please fill in all fields", Toast.LENGTH_SHORT).show();
}
当然,这种模式可以扩展到检查任意数量的视图上的任何属性。如果可以称之为唯一的缺点,那就是视图的冗余。这意味着,要使用这些EditTexts,您必须将它们绑定到单个变量,以便您可以按名称引用它们,或者您必须按列表中的位置(edits.get(0)
等)引用它们。就个人而言,我只是将它们中的每一个绑定两次,一次绑定到一个变量,一次绑定到列表中并使用适当的任何一个。
答案 26 :(得分:0)
试试这个: 它在Kotlin
//button from xml
button.setOnClickListener{
val new=addText.text.toString()//addText is an EditText
if(new=isNotEmpty())
{
//do something
}
else{
new.setError("Enter some msg")
//or
Toast.makeText(applicationContext, "Enter some message ", Toast.LENGTH_SHORT).show()
}
}
谢谢
答案 27 :(得分:0)
private void checkempForm(){
{
"lockVersion": [the correct version],
"_links": {
"parent": {
"href": "/api/v3/work_packages/[ID of the work package to become the parent]"
}
}
}
答案 28 :(得分:0)
以下对我来说很有效:
if(searchText.getText().toString().equals(""))
Log.d("MY_LOG", "Empty");
首先,我从EditText
中检索文本,然后将其转换为字符串,最后使用""
方法将其与.equals
进行比较。
答案 29 :(得分:0)
使用此短代码,您可以删除字符串开头和结尾的空白区域。如果字符串为“”,则返回消息“错误”,否则您将拥有一个字符串
EditText user = findViewById(R.id.user);
userString = user.getText().toString().trim();
if (userString.matches("")) {
Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(this, "Ok", Toast.LENGTH_SHORT).show();
}