如果必填文件为空,如何禁用按钮

阿达沙(Adarsha)AP

在我的注册表中,如果任何必填字段为空,如何禁用注册button填写所有必填字段后,它必须进入数据库。我收到了错误消息,但没有获取禁用方法的信息。这Button是我的代码,

public class MainActivity extends Activity implements View.OnClickListener{
Button log,sign;
private EditText firstname,lastname,mycity,myphone,password,cpassword;
Spinner bloodgroup,myarea;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);
    log = (Button) findViewById(R.id.register);
    sign = (Button) findViewById(R.id.linktologin);
    log.setOnClickListener(this);
    sign.setOnClickListener(this);
    initializeVars();
    bloodgroup = (Spinner) findViewById(R.id.bgroup) ;
    List<String> list = new ArrayList<String>();
    list.add("A+");
    list.add("A-");
    list.add("B+");
    list.add("B-");
    list.add("O+");
    list.add("O-");
    list.add("AB+");
    list.add("AB-");
    ArrayAdapter adapter = new ArrayAdapter(this,
            android.R.layout.simple_spinner_item, list);
    bloodgroup.setAdapter(adapter);

    myarea = (Spinner) findViewById(R.id.area) ;
    List<String> mylist = new ArrayList<String>();
    mylist.add("Vijaynagar");
    mylist.add("Malleshwarm");
    mylist.add("Banashankari");
    mylist.add("Adugodi");
    ArrayAdapter adapt = new ArrayAdapter(this,
            android.R.layout.simple_spinner_item, mylist);
    myarea.setAdapter(adapt);

}
private void initializeVars() {
    // TODO Auto-generated method stub
    firstname = (EditText) findViewById(R.id.fname);
    lastname = (EditText) findViewById(R.id.lname);
    mycity = (EditText) findViewById(R.id.city);
    myphone = (EditText) findViewById(R.id.phone);
    password = (EditText) findViewById(R.id.paswrd);
    cpassword = (EditText) findViewById(R.id.cpaswrd);
}


public void onClick(View arg0) {
    switch(arg0.getId()) {
    case R.id.linktologin:
        Intent in = new Intent(MainActivity.this,Register.class);
        startActivity(in);
        break;

    case R.id.register:
        Boolean diditwork=true;
        try{
            EditText firstname = (EditText) findViewById(R.id.fname);
            String name=firstname.getText().toString();
            if (name.matches("")) {
                Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
                return;
            }
            EditText mycity = (EditText) findViewById(R.id.city);
            String mycty=mycity.getText().toString();
            if (mycty.matches("")) {
                Toast.makeText(this, "You did not enter your city", Toast.LENGTH_SHORT).show();
                return;
            }
            EditText myphone = (EditText) findViewById(R.id.phone);
            String ph=String.valueOf(myphone);
            if (ph.matches("")) {
                Toast.makeText(this, "You did not enter your phone number", Toast.LENGTH_SHORT).show();
                return;
            }
            EditText password = (EditText) findViewById(R.id.paswrd);
            String psd=password.getText().toString();
            if (psd.matches("")) {
                Toast.makeText(this, "You did not enter password", Toast.LENGTH_SHORT).show();
                return;
            }
            cpassword = (EditText) findViewById(R.id.cpaswrd);
            String cpsd=cpassword.getText().toString();
            if (cpsd.matches("")) {
                Toast.makeText(this, "please confirm your password", Toast.LENGTH_SHORT).show();
                return;
            }

            String lname=lastname.getText().toString();
            String bg =bloodgroup.getSelectedItem().toString();
            String are= myarea.getSelectedItem().toString();


            Database entry = new Database(MainActivity.this);
            entry.open();
            entry.createEntry(name, lname, bg, are, mycty, ph, psd, cpsd);
            entry.close();

        }
        catch (Exception e){
            diditwork=false;
            String error=e.toString();
            Dialog d=new Dialog(this);
            d.setTitle("Somewhere you are wrong jus check..");
            TextView tv=new TextView(this);
            tv.setText("Sucess");
            d.setContentView(tv);
            d.show();
            break;
        }

    }}  }

谢谢你

弹簧断路器

继续@Siddharth的回答,我想添加更多代码。

我看到有一堆EditText要验证的东西,如果要button在所有必填字段都填满后启用该寄存器,那么解决方案是向其添加全局侦听器。

例子:

为活动的根视图分配一个已知的ID,例如“ @ + id / activityRoot”,然后将aGlobalLayoutListener插入ViewTreeObserver

final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
       //Give your all  validation conditions here
       if(firstname.getText().toString().equals("")
         {
          button.setEnabled(false);
         }

     }
});

您可以EditText在那里给出所有强制性的条件。确保EdiText在此之前初始化否则将会发生NullPointerException

参考http://developer.android.com/reference/android/view/ViewTreeObserver.html

https://stackoverflow.com/a/4737265/1665507

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果多个文件字段为空,则 JQuery 禁用按钮

如果输入为空,如何禁用html按钮?

如果ANY EditText为空,如何禁用按钮?

如果 SourceList 为空,如何禁用 WinForms 按钮

如果json为空,则禁用按钮

如果变体为空则禁用按钮

如果 TextField 为空,则禁用按钮

如果输入为空,则禁用提交按钮

如果引导程序中输入类型文件为空,则使按钮禁用

输入为空时如何禁用按钮?

如果输入之一为空,如何禁用按钮(纯Javascript)

如果使用 Angular 为空日期选择器,如何禁用按钮

Swift UI:如果文本字段为空,则禁用按钮

角形式禁用提交按钮,如果字段为空

如果任何字段为空,则按钮应禁用

如果MySql字段为空/空/无,如何禁用标题

如果任何必填字段为空,如何中止vue.js方法发布

如何保持按钮禁用任何editText为空?

Vue中输入为空时如何禁用按钮?

表单为空时如何禁用提交按钮

如何在反应中状态为空时禁用按钮

表单字段为空时如何禁用提交按钮?

使用Jquery输入元素为空时,如何禁用按钮?

如果按钮文本为空,则

如果单击按钮,如何清除我的输入,同时如果输入为空,如何使按钮不可单击?

如果输入不为空,则启用禁用按钮

如果复选框已选中但相应的文本框为空,则禁用按钮

jQuery:如果字段为空或未选中复选框,则禁用提交按钮

如果使用ngDisabled至少一个输入字段为空,则禁用按钮