我遇到问题,我尝试过在我的程序的其他部分工作的代码,但这不能正常工作。我正在编码,以确保用户不提交空表格。
码
<EditText
android:id="@+id/msage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittext"
android:hint="Write Something...."
android:maxLines="4"
android:elevation="8dp"
android:textSize="14dp"
android:text=""
android:gravity="top"
android:textColor="@color/colorAccent"
android:textColorHint="@color/colorAccent"
android:layout_margin="40dp"/>
然后在我的活动上:
EditText msg;
msg = (EditText)findViewById(R.id.msage);
String msgContent = msg.getText().toString().trim();
if (msgContent.equals("") || msgContent.length() <= 15) {
msg.setError("Enter valid Message");
return;
}
//---below: code to submit form to server
我甚至尝试过TextUtils.isEmpty
修改
所以,经过12个多小时的拔毛,我终于找到了逻辑错误的地方。
我的代码被封装在
中public void btnSendFeedBack(View view) {
// Code
}
使用android:clickable="true" and android:onClick="btnSendFeedBack"
,但这是我发现的错误。
被@Charuz追赶后,我改为
findViewById(R.id.sendFeedback).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
msgContent = msg.getText().toString().trim();
//email
if (msgContent.equals("") || msgContent == null || msgContent.length() < 15) {
msg.setError("Enter a valid Feedback");
return;
}
SendFeedback();
}
});
它有效。
谢谢你的时间......干杯!!!
答案 0 :(得分:2)
您没有为代码添加其他条件,它检查空字符串并将其发送到服务器。
if (msgContent.equals("") || msgContent.length() <= 15) {
msg.setError("Enter valid Message");
}
else
{
//submit form to server
}
答案 1 :(得分:2)
在将表单发送到服务器之前,只需验证EditText值。
String val=EditText.getText().toString();
在按钮内单击使用逻辑,
if(val.length()>15){
// Your logic for submit form to server
}else{
// Error message as per your requirement
}
答案 2 :(得分:1)
这是一个检查Edittext
是否为空的简单逻辑
private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
你的代码中的试试这个:
String msgContent = msg.getText().toString().trim();
if ((msgContent.length() == 0) || (msgContent.length() <= 15)) {
msg.setError("Enter valid Message");
return;
}
答案 3 :(得分:1)
删除 EditText 中的行:
android:text=""
尝试:
if(TextUtils.isEmpty(msg.getText().toString()))
答案 4 :(得分:1)
首先尝试在true
块上获取条件if
并将数据发送到服务器:
EditText msg;
msg = (EditText)findViewById(R.id.msage);
String msgContent = msg.getText().toString().trim();
if (!TextUtils.isEmpty(msgContent) || msgContent.length() >= 15) {
//Send data to server
}else{
msg.setError("Enter valid Message");
//return;
}
答案 5 :(得分:0)
尝试使用代码中的 addTextChangedListener 。
-host 10.11.xx.xx
这里我使用了布尔值VALID_MESSAGE。当用户输入长度大于15的文本时,它变为真。当擦除输入的文本时,它也会变为false。 因此,在发送到服务器时,您只需要检查标志是否为真。
在 afterTextChanged 中也可以这样做。 没有太大区别。