Edittext:错误已解决,然后启用 Android 中的发送按钮

2024-05-05

我有五个 edittext 字段,它们正在检查字段并在输入错误时限制某些数据,如下代码所示,但现在如果我在 edittext 中输入错误的数据,那么它会将信息输入数据库,所以如果有错误,我想禁用该按钮任何编辑文本。错误可能出现在 1 到 5 个编辑文本中,它必须禁用发送按钮。仅当编辑文本字段中没有错误时才启用发送按钮

public class MaINActivity extends Activity {

    String result = null;
    InputStream is = null;
    String valid_email = null;
    String valid_name = null;
    String valid_last = null;
    String valid_age = null;
    String v5,v1,v2,v3,v4,v6;
    String valid_confirm = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_subscribe);

    final EditText editText = (EditText)findViewById(R.id.firstname);

    final EditText editText1 = (EditText)findViewById(R.id.lastname);

    final EditText editText2 = (EditText)findViewById(R.id.age1);

    final EditText editText3 = (EditText)findViewById(R.id.email);

    final EditText editText4 = (EditText)findViewById(R.id.confirm);

    editText2.addTextChangedListener(new TextWatcher(){

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            Is_Valid_Age(editText2);
        }

        private void Is_Valid_Age(EditText editText2) {

            if(editText2.length() == 0 || editText2.equals("") || editText2 == null || "".equals(editText2.getText().toString())) {
                valid_age = null;
            }else {
                valid_age = editText2.getText().toString();
            }
        }

    });
    editText1.addTextChangedListener(new TextWatcher(){

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {


        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {


        }

        @Override
        public void afterTextChanged(Editable s) {
            Is_Valid_Last_Name(editText1);

        }

        private void Is_Valid_Last_Name(EditText editText1) throws NumberFormatException {

            if (editText1.getText().toString().length() <= 0) {
                editText1.setError("Accept Alphabets Only.");
                valid_last = null;
            } else if (!editText1.getText().toString().matches("[a-zA-Z ]+")) {
                editText1.setError("Accept Alphabets Only.");
                valid_last = null;
            } else if(editText1.length() == 0 || editText1.equals("") || editText1 == null || "".equals(editText1.getText().toString())) {
                valid_last = null;
            }else {
                valid_last = editText1.getText().toString();
            }

        }

    });

    editText.addTextChangedListener(new TextWatcher(){

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {


        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {


        }

        @Override
        public void afterTextChanged(Editable s) {
            Is_Valid_First_Name(editText);

        }

        private void Is_Valid_First_Name(EditText editText) throws NumberFormatException {

            if (editText.getText().toString().length() <= 0) {
                editText.setError("Accept Alphabets Only.");
                valid_name = null;
            } else if (!editText.getText().toString().matches("[a-zA-Z ]+")) {
                editText.setError("Accept Alphabets Only.");
                valid_name = null;
            } else if(editText.length() == 0 || editText.equals("") || editText == null || "".equals(editText.getText().toString())) {
                valid_name = null;
            }else {
                valid_name = editText.getText().toString();
            }

        }
    }); 

    editText3.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {

            Is_Valid_Email_Address(editText3);
        }

        public void Is_Valid_Email_Address(EditText editText3) {
            if (editText3.getText().toString() == null) {
                editText3.setError("Invalid Email Address");
                valid_email = null;
            } else if (isEmailValid(editText3.getText().toString()) == false) {
                editText3.setError("Invalid Email Address");
                valid_email = null;
            } else if(editText3.length() == 0 || editText3.equals("") || editText3 == null || "".equals(editText3.getText().toString())) {
                valid_email = null;
            }else {
                valid_email = editText3.getText().toString();
            }
        }
    });

    editText4.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {


        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {


        }

        @Override
        public void afterTextChanged(Editable s) {

            Is_Valid_Confirm_Address(editText4);
        }


        public void Is_Valid_Confirm_Address(EditText editText4) {
            if (editText4.getText().toString() == null) {
                editText4.setError("Invalid Email Address");
                valid_confirm = null;
            } else if (isEmailValid(editText4.getText().toString()) == false) {
                editText4.setError("Invalid Email Address");
                valid_confirm = null;
            } else if (editText4.getText().toString().equals(editText3.getText().toString())) {

                valid_confirm = editText4.getText().toString();
            } else if(editText4.length() == 0 || editText4.equals("") || editText4 == null || "".equals(editText4.getText().toString())) {
                valid_confirm = null;
            } else {
                editText4.setError("Confirm Email is Not Matching");
                valid_confirm = null;
            } 

        }
    });

    Button send = (Button) findViewById(R.id.send);
    send.setOnClickListener(new View.OnClickListener(){

        @SuppressLint("NewApi")
        @Override
        public void onClick(View view) {

            v1 = editText.getText().toString();
            v2 = editText1.getText().toString();
            v3 = editText2.getText().toString();
            v4 = editText3.getText().toString();
            v5 = editText4.getText().toString();  


            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

            nameValuePairs.add(new BasicNameValuePair("firstname",v1));
            nameValuePairs.add(new BasicNameValuePair("lastname",v2));
            nameValuePairs.add(new BasicNameValuePair("age",v3));
            nameValuePairs.add(new BasicNameValuePair("email_address",v4));
            nameValuePairs.add(new BasicNameValuePair("confirm_email_address",v5));



            StrictMode.setThreadPolicy(policy);

            try
            {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("localhost/Android/Insert.php");
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost); 
                HttpEntity entity = response.getEntity();
                is = entity.getContent();

                Log.e("log_tag", "connection success ");
                Toast.makeText(getApplicationContext(), "Subscription Successfull.Thank You for Subscribing you have now been added to our Mailing Lists", Toast.LENGTH_LONG).show();
            }
            catch(Exception e)
            {
                Log.e("log_tag", "Error in http connection "+e.toString());
                Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_SHORT).show();
            }
            try
            {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) 
                {
                        sb.append(line + "\n");
                        Intent i = new Intent(getBaseContext(),SecondActivity.class);
                        startActivity(i);
                }
                is.close();

                result=sb.toString();
            }
            catch(Exception e)
            {
               Log.e("log_tag", "Error converting result "+e.toString());
            }
            try
            {   
                    JSONObject json_data = new JSONObject(result);
                    CharSequence w= (CharSequence) json_data.get("result");

                    Toast.makeText(getApplicationContext(), w, Toast.LENGTH_SHORT).show();
            }
            catch(JSONException e)
            {
                    Log.e("log_tag", "Error parsing data "+e.toString());
                    Toast.makeText(getApplicationContext(), "JsonArray fail", Toast.LENGTH_SHORT).show();
            }
        }


    });

}

    private boolean isEmailValid(String email) {

        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }}

试试这个方法,希望这能帮助你解决你的问题。

活动订阅.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="5dp">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <EditText
                android:id="@+id/edtFirstName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="FirstName"
                android:layout_marginTop="5dp"/>

            <EditText
                android:id="@+id/edtLastName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="LastName"
                android:layout_marginTop="5dp"/>
            <EditText
                android:id="@+id/edtAge"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Age"
                android:layout_marginTop="5dp"/>
            <EditText
                android:id="@+id/edtEmail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Email"
                android:inputType="textEmailAddress"
                android:layout_marginTop="5dp"/>
            <EditText
                android:id="@+id/edtPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:hint="Password"
                android:layout_marginTop="5dp"/>
            <EditText
                android:id="@+id/edtConfirmPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:hint="Confirm Password"
                android:layout_marginTop="5dp"/>
            </LinearLayout>
        </ScrollView>
    <Button
        android:id="@+id/btnSubmit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit"/>

</LinearLayout>

订阅活动.java

public class SubscribeActivty extends Activity {

    InputStream is = null;
    private EditText edtFirstName;
    private EditText edtLastName;
    private EditText edtAge;
    private EditText edtEmail;
    private EditText edtPassword;
    private EditText edtConfirmPassword;
    private Button btnSubmit;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_subscribe);

        edtFirstName = (EditText) findViewById(R.id.edtFirstName);
        edtLastName = (EditText) findViewById(R.id.edtLastName);
        edtAge = (EditText) findViewById(R.id.edtAge);
        edtEmail = (EditText) findViewById(R.id.edtEmail);
        edtPassword = (EditText) findViewById(R.id.edtPassword);
        edtConfirmPassword = (EditText) findViewById(R.id.edtConfirmPassword);
        btnSubmit = (Button) findViewById(R.id.btnSubmit);

        btnSubmit.setOnClickListener(new View.OnClickListener() {

            @SuppressLint("NewApi")
            @Override
            public void onClick(View view) {

                boolean isValid = true;
                if (edtFirstName.getText().toString().length() <= 0) {
                    edtFirstName.setError("Value  Required");
                    isValid = false;
                } else if (!edtFirstName.getText().toString().matches("[a-zA-Z ]+")) {
                    edtFirstName.setError("Accept Alphabets Only.");
                    isValid = false;
                }

                if (edtLastName.getText().toString().length() <= 0) {
                    edtLastName.setError("Value  Required");
                    isValid = false;
                } else if (!edtLastName.getText().toString().matches("[a-zA-Z ]+")) {
                    edtLastName.setError("Accept Alphabets Only.");
                    isValid = false;
                }

                if (edtEmail.getText().toString().length() <= 0) {
                    edtEmail.setError("Value  Required");
                    isValid = false;
                } else if (!isEmailValid(edtEmail.getText().toString())) {
                    edtLastName.setError("Invalid Email.");
                    isValid = false;
                }

                if (edtAge.getText().toString().length() <= 0) {
                    edtAge.setError("Value  Required");
                    isValid = false;
                } else if (!edtAge.getText().toString().matches("[0-9 ]+")) {
                    edtAge.setError("Accept Numbers Only.");
                    isValid = false;
                }

                if (edtPassword.getText().toString().length() <= 0) {
                    edtPassword.setError("Value  Required");
                    isValid = false;
                }

                if (edtConfirmPassword.getText().toString().length() <= 0) {
                    edtConfirmPassword.setError("Value  Required");
                    isValid = false;
                } else if (!edtConfirmPassword.getText().toString().equals(edtPassword.getText().toString())) {
                    edtConfirmPassword.setError("Password Mismatch.");
                    isValid = false;
                }


                if (isValid) {
                    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

                    nameValuePairs.add(new BasicNameValuePair("firstname", edtFirstName.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("lastname", edtLastName.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("age", edtAge.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("email", edtEmail.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("password", edtPassword.getText().toString()));

                    submitDataOnServer(nameValuePairs);
                }
            }

        });

    }

    public void submitDataOnServer(final ArrayList<NameValuePair> nameValuePairs){
        new AsyncTask<Void,Void,String>(){
            @Override
            protected String doInBackground(Void... params) {
                try {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("localhost/Android/Insert.php");
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();

                    Log.e("log_tag", "connection success ");
                    Toast.makeText(getApplicationContext(), "Subscription Successfull.Thank You for Subscribing you have now been added to our Mailing Lists", Toast.LENGTH_LONG).show();
                } catch (Exception e) {
                    Log.e("log_tag", "Error in http connection " + e.toString());
                    Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_SHORT).show();
                }
                try {

                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    is.close();

                    return sb.toString();
                } catch (Exception e) {
                    Log.e("log_tag", "Error converting result " + e.toString());
                }
                return null;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                try {
                    JSONObject json_data = new JSONObject(result);
                    CharSequence w = (CharSequence) json_data.get("result");

                    Toast.makeText(getApplicationContext(), w, Toast.LENGTH_SHORT).show();
                } catch (JSONException e) {
                    Log.e("log_tag", "Error parsing data " + e.toString());
                    Toast.makeText(getApplicationContext(), "JsonArray fail", Toast.LENGTH_SHORT).show();
                }
            }
        }.execute();
    }


    public boolean isEmailValid(final String mailAddress) {
        Pattern pattern;
        Matcher matcher;
        final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
        pattern = Pattern.compile(EMAIL_PATTERN);
        matcher = pattern.matcher(mailAddress);
        return matcher.matches();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Edittext:错误已解决,然后启用 Android 中的发送按钮 的相关文章

随机推荐

  • Windows 批处理:如何添加主机条目?

    我想使用此批处理脚本通过使用自动将新条目添加到我的主机文件中windows questions tagged windows batch 不幸的是 剧本只需在主机文件中添加一行 当我以管理员身份运行脚本时 又出了什么问题 echo off
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe
  • 实时数据监控:PyQtGraph

    我正在开展一个项目 我必须分析来自设备的信号 我有一个正在运行的库 它可以从设备获取数据 截至目前 我正在收集数据 然后绘制它 我有兴趣构建一个可以实时绘制图表的实时数据监视器 经过搜索 我发现 PyQtGraph 非常适合这项任务 我对
  • 如何在 Flutter 中创建网络图像列表

    我使用 Carousel Pro 包在屏幕上实现轮播 在这个 Carousel 类中它需要一个图像列表 Carousel 类的语法是 Carousel images NetworkImage https cdn images 1 mediu
  • 如何在android中使用进度条填充图像

    我正在做一个项目 它需要填充图像 意味着我想使用图像形状作为进度条 我不知道如何使用自定义进度栏 这是一个图像及其图像按钮 这是进度为 100 时的情况 这是 0 进度 您需要了解可绘制资源 可绘制资源 安卓开发者 https develo
  • python 请求上传文件

    我正在访问一个网站 并且想要上传一个文件 我用Python编写了代码 import requests url http example com files file open 1 jpg rb r requests post url fil
  • 如何在SVG中实现橡皮擦功能?

    我认为 SVG 在某些功能上比 HTML5 canvas 更好 但我无法想象一种简单的方法来实现橡皮擦功能 我有什么方法或例子吗 这是一种非常笨拙的方法 但您可以简单地用白色描边模仿标准钢笔工具
  • 通过 Travis-CI 部署到 Heroku 的问题

    在使用 Heroku 部署时 我不断收到此错误 并且在通过 Travis 运行构建后尝试部署到 Heroku 时 我一直收到几个不同的报告 No stash entries found API request failed Message
  • 为什么添加多重处理会阻止 python 找到我编译的 c 程序?

    我目前正在寻求利用多处理的力量来加速我的代码 然而 当我从 python 调用编译后的代码时遇到了一些问题 因为当编译后的文件包含任何形式的多处理时 它似乎从代码的视图中消失了 例如 使用以下测试代码 include
  • Java 从我创建的另一个类访问数组元素

    我正在使用 main 方法在类中创建一个数组 Word attempts new Word 26 Word 类中的字段是 private String attempts Word 类中的构造函数是 public Word int a att
  • 如何在没有io的情况下在windows上创建特定大小的文件?

    Windows 上是否有与 posix fallocate 等效的函数 具体来说 我正在寻找一种方法来立即 无需执行大量 IO 创建特定大小的文件 我不关心内容 我尝试过 chsize s 它确实分配了文件 但需要很长时间 如果我右键单击文
  • Swift 2 中的 segue 没有后退按钮

    我刚刚将我的项目移植到 Swift 2 一切都运行良好 除了即使是最简单的 segues 也没有后退按钮 这是我正在使用的 segue 函数的准备 override func prepareForSegue segue UIStoryboa
  • Flutter如何向用户显示FPS(每秒帧数)?

    有没有办法在 Flutter 中向用户显示 FPS 又称每秒帧数 有没有任何小部件或包 Note 我在测试期间并没有要求 FPS 截屏 Code 我不知道是否有一个包可以帮助您不断地向用户显示 FPS 但如果您想手动执行此操作 您可以尝试以
  • 如果布局中有两张卡,则第二张卡下方没有阴影/高程。为什么?

    我有2个cards在一个单一的RelativeLayout 问题是第二张卡下方没有高程或阴影 请参阅此处的屏幕截图 截屏 https i stack imgur com oOWIT jpg 这是我在 xml 文件中所做的
  • 在 Django 中创建持久数据对象

    我有一个基于 Python 的最大熵分类器 它很大 存储为 Pickle 大约需要一分钟才能反序列化 它也不是线程安全的 然而 它运行速度很快 可以在几毫秒内对样本 一个简单的 Python 字典 进行分类 我想创建一个基本的 Django
  • Android 中的布局和容器有什么区别?

    在android studio中 在设计部分 布局和容器是分开分类的 它们之间的根本区别是什么 Layouts全部直接延伸ViewGroup The Layout后缀是该组中类的类名的一部分 例如LinearLayout RelativeL
  • 反序列化时出现 Protobuf-net memcache 提供程序 null 类型错误

    我正在使用最新的 protobuf net lib 和 protobuf net memcache 提供程序 我需要序列化自定义类型 MyClass 的列表 ProtoContract public class MyClass ProtoM
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • Faker 生成奇怪的电话号码?

    因此 我使用 Laravel 创建一个数据库并对其进行播种 我遇到了一个问题 它生成一个电话号码 如下所示 635 889 5802 x45134 这会因超出数据库列的所需长度而导致问题 所以我的问题是 从实践层面来看 它为什么这样做 现实
  • Edittext:错误已解决,然后启用 Android 中的发送按钮

    我有五个 edittext 字段 它们正在检查字段并在输入错误时限制某些数据 如下代码所示 但现在如果我在 edittext 中输入错误的数据 那么它会将信息输入数据库 所以如果有错误 我想禁用该按钮任何编辑文本 错误可能出现在 1 到 5