我有大约5个edittexts。当我点击提交按钮时,它必须检查是否输入了所有字段。如果没有输入任何值,则必须使用它,焦点必须转到所需的edittext。如果有许多editexts为空,然后焦点必须按自上而下的顺序。我使用了seterror方法,但是当我输入该editext时,错误消息不会进入。输入值后,焦点不会转到下一个edittext.how来解决这个问题?
caseno,dateloss,policy_rep,reg_book,Dri_lic是使用的不同editexts。我为下面的一个editext编写了代码
caseno.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasfocus)
{
if(!hasfocus && caseno.getText().length()==0)
{
new Handler().postDelayed(new Runnable()
{
@Override
public void run() {
//ev2.clearFocus();
dateloss.clearFocus();
policy_rep.clearFocus();
reg_book.clearFocus();
Dri_lic.clearFocus();
caseno.requestFocus();
caseno.setError("Enter this field");
}
}, 100);
}
}
});
btnsubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(caseno!=null||dateloss!=null||policy_rep!=null||reg_book!=null||Dri_lic!=null)
{
Send_reportclaim_Async reportsync=new Send_reportclaim_Async();
reportsync.execute();
}
}
});
答案 0 :(得分:1)
检查一下:
for(EditText edit : editTextList){
if(TextUtils.isEmpty(edit.getText()){
// EditText is empty
}
}
答案 1 :(得分:1)
Android为此提供了setError()
方法:
if(edttxtDescription.getText().toString().trim().equals(""))
{
edttxtDescription.setError("Please provide description");
}
定义一种方法来检查您的EditText
是否有有效数据:
private boolean validateEditTexts()
{
boolean valid = true;
if(edttxtDescription.getText().toString().trim().equals(""))
{
edttxtDescription.setError("Please provide description");
valid = false;
}
// Similarly check all your EditTexts here and set the value of valid
......
......
return valid;
}
要验证您的所有EditTexts
,请致电validateEditTexts()
,相应地返回true
或false
。
btnsubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(validateEditTexts()){
Send_reportclaim_Async reportsync=new Send_reportclaim_Async();
reportsync.execute();
}
}
});
试试这个。这将有效。
答案 2 :(得分:1)
维护EditText引用数组:喜欢
EditText[] allEts = { caseno, dateloss, policy_rep, reg_book, Dri_lic };
在onClick的提交按钮中写下以下代码:
for (EditText editText : allEts) {
String text = editText.getText().toString();
if (text.length() == 0) {
editText.setError("enter this field");
editText.requestFocus();
break;
}
}
并且,为所有edittexts实现addTextChangedListener以在输入文本后清除错误。
caseno.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
Editable text = caseno.getText();
if (caseno.getError() != null && text != null
&& text.length() > 0) {
caseno.setError(null);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
答案 3 :(得分:0)
点击按钮时使用此功能
if(!textView1.toString().isEmpty() && !textView2.toString().isEmpty() && ...)
{
............
}
答案 4 :(得分:0)
1)创建此方法
public static boolean isNullOrEmpty(String input) {
return input == null || input.isEmpty();
}
2)向其发送数据以进行验证
boolean answer = isNullOrEmpty(editText.gettext().toString());
答案 5 :(得分:0)
btnsubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(TextUtils.isEmpty(caseno.getText().toString()))
{
caseno.requestFocus();
Toast.makeText(getApplicationContext(),"Enter the required fields", Toast.LENGTH_LONG).show();
return;
}
if(TextUtils.isEmpty(dateloss.getText().toString()))
{
dateloss.requestFocus();
Toast.makeText(getApplicationContext(),"Enter the required fields", Toast.LENGTH_LONG).show();
return;
}
}
目前这个设置对我有用......请回答那些人