主要知识点:
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应用会出现“闪退”现象

更多相关文章

  1. 我怎么能不使用GPS得到我的Android设备的国家代码?
  2. Android系列之SQLite与Android(安卓)Studio的数据交互
  3. android中锁屏后代码不运行的问题
  4. Android(安卓)使用Post与Get方法进行表单提交数据
  5. [Android] S​Q​l​i​t​e​数​据​库
  6. Android之旅十三 android中的数据传递方法
  7. Android(安卓)获取屏幕的多种宽高信息的示例代码
  8. Android(安卓)在Service中调用Activity
  9. 往Android的Application对象里存储数据的陷阱

随机推荐

  1. 如何从其他dtypes创建一个numpy dtype?
  2. 独立于数据库的MAX()函数在SQLAlchemy中
  3. 使用python api递归计算每个Dropbox文件
  4. Python为8bit深度图像应用color map
  5. 可变序列长度数据的分类
  6. 'str'对象不能解释为groupby上的整数
  7. 基于Python的XSS测试工具XSStrike使用方
  8. 乘客的Django应用程序显示空主页
  9. 如何用所有可能的方式将一个列表分割成对
  10. 安装:Ubuntu12.04+Python3+Django1.7.9过