Android studio 中Activity以及EditText的一些用法和问题

10 篇文章 0 订阅

主要知识点:
1:如何判断EditText中有没有内容(不能用null或者0)
2:点击事件内代码的运行情况分析
3:获取空的EditText内容进行数据强制转换出现的问题
4:代码容错

package com.example.administrator.activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);
        Button btn_mul=(Button)findViewById(R.id.mul);
        Button btn_div=findViewById(R.id.div);
        btn_mul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isEmpty()==true){
                    return;
                }else{
                    Mul();
                }
            }
        });

        btn_div.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isEmpty()==true){
                    return;
                }else{
                    Div();
                }
            }
        });

        Intent i=getIntent();
        String op=i.getStringExtra("op");
        String res=i.getStringExtra("res");
        TextView Aopshow=(TextView)findViewById(R.id.Aopshow);
        TextView Aresshow=(TextView)findViewById(R.id.Aresshow);
        Aopshow.setText(op);
        Aresshow.setText(res);
    }

    public boolean isEmpty(){
        //获取数据1的EditText
        EditText Ad1Show=findViewById(R.id.Ad1Show);
        //获取数据2的EditText
        EditText Ad2Show=findViewById(R.id.Ad2Show);
        if(TextUtils.isEmpty(Ad1Show.getText())&&TextUtils.isEmpty(Ad2Show.getText())){
            Toast.makeText(MainActivity.this, "数据1,数据2为空", Toast.LENGTH_SHORT).show();
            return true;
        }else if (TextUtils.isEmpty(Ad1Show.getText())){
            Toast.makeText(MainActivity.this, "数据1为空", Toast.LENGTH_SHORT).show();
            return true;
        }else if(TextUtils.isEmpty(Ad2Show.getText())){
            Toast.makeText(MainActivity.this, "数据2为空", Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }

    public void Div(){
        Intent intent=new Intent(MainActivity.this,ActivityC.class);
        EditText Ad1Show=findViewById(R.id.Ad1Show);
        EditText Ad2Show=findViewById(R.id.Ad2Show);
        //获取进行运算的Button
        Button Aop=findViewById(R.id.div);
        float d1= Float.parseFloat(Ad1Show.getText().toString());
        //疑问:Integer.parseInt无法计算小数
        float d2= Float.parseFloat(Ad2Show.getText().toString());
        if(d2==0.0){
            Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_SHORT).show();
            Intent intent1=new Intent(MainActivity.this,ActivityB.class);
            startActivity(intent);
            MainActivity.this.finish();
        }
        String res=d1/d2+" ";
        //封装数据
        intent.putExtra("d1", Ad1Show.getText().toString());
        intent.putExtra("d2", Ad2Show.getText().toString());
        intent.putExtra("op", Aop.getText().toString());
        intent.putExtra("res", res);
        //启动Activity B
        startActivity(intent);
        //结束MainActivity
        MainActivity.this.finish();
    }

    public void Mul(){
        Intent intent=new Intent(MainActivity.this,ActivityB.class);
        EditText Ad1Show=findViewById(R.id.Ad1Show);
        EditText Ad2Show=findViewById(R.id.Ad2Show);
        Button Aop=findViewById(R.id.mul);
        float d1= Float.parseFloat(Ad1Show.getText().toString());
        //疑问:Integer.parseInt无法计算小数
        float d2= Float.parseFloat(Ad2Show.getText().toString());
        String res=d1*d2+" ";
        //封装数据
        intent.putExtra("d1", Ad1Show.getText().toString());
        intent.putExtra("d2", Ad2Show.getText().toString());
        intent.putExtra("op", Aop.getText().toString());
        intent.putExtra("res", res);
        //启动Activity B
        startActivity(intent);
        //结束MainActivity
        MainActivity.this.finish();
    }
}



运行结果:
在这里插入图片描述
代码容错第一种情况:(两个EditText都为空)
在这里插入图片描述
代码容错第二种情况:(第一个EditText为空)
在这里插入图片描述
代码容错第三种情况:(第二个EditText为空)
在这里插入图片描述
知识点理解:
1:判断EditText中有没有内容应使用:TextUtils.isEmpty(EditText名称.getText())

2:一个点击事件发生后,其点击事件内的代码将全部运行,其带来的坏处就是,我们无法控制代码的“走”与“停”。比如我们希望先进行某个判断再运行接下来的代码,这个时候点击事件内的代码块就无法进行“刹车”,从而出现一些不好的情况。我的解决方法是将点击事件中的代码分别写成两个方法,一个判断,一个运算,这样就可以根据判断结果来决定是否进行计算
例:
btn_mul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isEmpty()==true){
return;
}else{
Mul();
}
}
});

3:获取空的EditText内容进行数据强制转换
例如:
float d1= Float.parseFloat(Ad1Show.getText().toString());
若此时的EditText为空,则andrioid应用会出现“闪退”现象

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将EditText内容输入MySQL,需要进行以下步骤: 1. 创建一个MySQL数据库,包括一个表,用于存储EditText输入的数据。 2. 在Android Studio创建一个布局,包括EditText和一个按钮。 3. 创建一个Java类,用于处理EditText输入的数据和将其发送到MySQL数据库。 4. 在Java类,使用JDBC连接到MySQL数据库。 5. 实现在Android应用程序读取EditText的值并将其插入到MySQL数据库的代码。 6. 在按钮上设置一个点击事件,以便将EditText的值发送到MySQL数据库。 下面是一些参考代码,可以帮助你实现这个过程: 1. 创建MySQL数据库和数据表 CREATE DATABASE android_db; USE android_db; CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); 2. 在Android Studio创建布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/editTextName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter your name"/> <EditText android:id="@+id/editTextEmail" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter your email"/> <EditText android:id="@+id/editTextPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter your password"/> <Button android:id="@+id/buttonSave" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Save"/> </LinearLayout> 3. 创建Java类 public class MainActivity extends AppCompatActivity { EditText editTextName, editTextEmail, editTextPassword; Button buttonSave; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextName = findViewById(R.id.editTextName); editTextEmail = findViewById(R.id.editTextEmail); editTextPassword = findViewById(R.id.editTextPassword); buttonSave = findViewById(R.id.buttonSave); buttonSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String name = editTextName.getText().toString().trim(); String email = editTextEmail.getText().toString().trim(); String password = editTextPassword.getText().toString().trim(); if (name.isEmpty()) { editTextName.setError("Name is required."); editTextName.requestFocus(); return; } if (email.isEmpty()) { editTextEmail.setError("Email is required."); editTextEmail.requestFocus(); return; } if (password.isEmpty()) { editTextPassword.setError("Password is required."); editTextPassword.requestFocus(); return; } insertData(name, email, password); } }); } private void insertData(String name, String email, String password) { String url = "jdbc:mysql://localhost:3306/android_db"; String user = "root"; String pass = "password"; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection(url, user, pass); String query = "INSERT INTO users (name, email, password) VALUES (?, ?, ?)"; PreparedStatement stmt = con.prepareStatement(query); stmt.setString(1, name); stmt.setString(2, email); stmt.setString(3, password); int result = stmt.executeUpdate(); if (result > 0) { Toast.makeText(this, "Data inserted successfully.", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Something went wrong.", Toast.LENGTH_SHORT).show(); } con.close(); } catch (Exception e) { e.printStackTrace(); } } } 4. 在Android应用程序读取EditText的值并将其插入到MySQL数据库的代码 在Java类的insertData()方法,我们使用JDBC连接到MySQL数据库并执行INSERT语句将EditText的值插入到数据表。 5. 在按钮上设置一个点击事件,以便将EditText的值发送到MySQL数据库 在Java类的onCreate()方法,我们使用findViewById()方法获取EditText和Button的引用,并在Button上设置一个点击事件,该事件将调用insertData()方法将EditText的值插入到MySQL数据库。 现在,你可以在Android应用程序输入EditText的值,然后点击按钮将其插入到MySQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值