常用控件01 TextView与EditText ,Android简单计算器
1. 事件监听(三种写法)
1.1 标签上直接绑定监听方法
public void xxx(View view)
1.2 创建监听器对象,组件再绑定监听器对象
1.2.1 匿名内部类
1.2.2 使用匿名内部类并定义成全局的属性
2. 文本框(TextView)
2.1 简介
TextView直接继承View,作用就是在界面上显示文本(类似于Swing中的JLabel),同时它还是EditText、Button两个UI组件类的父类。
另外Android关闭了它的文字编辑功能,如果想编辑内容,则可以使用EditText。
2.2 TextView常用属性
2.2.1 text
2.2.2 autoLink
2.2.3 singleLine(已过时,现在应为:android:lines)
2.2.4 lines
2.2.5 minLines
2.2.6 textColor
2.2.7 textSize
2.2.8 textStyle
字体风格粗体、斜体
2.2.9 backgroud
设置背景,可以是颜色或图片
2.2.10 drawableXX
设置文本的icon
2.2.11 ellipsize 当文字长度超过textview宽度时的显示方式
android:ellipsize=“start” 省略号显示在开头 “…pedia”
android:ellipsize=“end” 省略号显示在结尾 “encyc…”
android:ellipsize=“middle” 省略号显示在中间 “en…dia”
android:ellipsize=“marquee” 以横向滚动方式显示(另外还需要设置其它三个属性,否则不滚动,即必须让该控件获得焦点)
案例二 常用编辑框
3. 编辑框(EditText)
3.1 简介
EditText和TextView非常相似,它与TextView共用了绝大总分XML属性和文法,
二者最大区别在于:EditText可以接受用户输入。
3.2 常用属性
3.2.1 inputType
它是EditText组件最重要的属性,它相当于HTML中标签的type属性,用于EditText指定输入组件的类型。
常用取值有:number|numberPassword|date|phone
3.2.2 hint:提示字符信息
4.Android 简单计算器
private String text="";
private String a="";
private String b="";
private String c="";
private String d="";
public void counter(View view) {
Button bool=(Button) view;
TextView tv=findViewById(R.id.bt_main_text);
if (view.getId()==R.id.bt_main_d2){
b=text.substring(a.length()+1,text.length());
if (c.equals("+")){
text=Double.valueOf(a)+Double.valueOf(b)+"";
}else if (c.equals("-")){
text=Double.valueOf(a)-Double.valueOf(b)+"";
}else if (c.equals("*")){
text=Double.valueOf(a)*Double.valueOf(b)+"";
}else if (c.equals("/")){
text=Double.valueOf(a)/Double.valueOf(b)+"";
}
tv.setText(text);
a="";
Toast.makeText(this,"QNM",Toast.LENGTH_SHORT).show();
}else {
text += bool.getText()+"";
tv.setText(text);
if(view.getId()==R.id.bt_main_j1 ||view.getId()==R.id.bt_main_j2 ||view.getId()==R.id.bt_main_c1 || view.getId()==R.id.bt_main_c2){
if (a.equals("")){
a=text.substring(0,text.length()-1);
c=text.substring(text.length()-1);
Toast.makeText(this,"QNMDDDDD",Toast.LENGTH_SHORT).show();
}else{
b=text.substring(a.length()+1,text.length()-1);
d=text.substring(text.length()-1);
Toast.makeText(this,d,Toast.LENGTH_SHORT).show();
if (c.equals("+")){
text=Double.valueOf(a)+Double.valueOf(b)+"";
}else if (c.equals("-")){
text=Double.valueOf(a)-Double.valueOf(b)+"";
}else if (c.equals("*")){
text=Double.valueOf(a)*Double.valueOf(b)+"";
}else if (c.equals("/")){
text=Double.valueOf(a)/Double.valueOf(b)+"";
}
a=text;
text+=d;
tv.setText(text);
c=d;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="6"
android:columnCount="4"
tools:context=".MainActivity">
<EditText
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_columnSpan="4"
android:id="@+id/bt_main_text"
android:layout_gravity="fill_horizontal" />
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/bt_main_1"
android:onClick="counter"
android:text="1"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_2"
android:text="2"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_3"
android:text="3"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_c1"
android:text="/"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_4"
android:text="4"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_5"
android:text="5"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_6"
android:text="6"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_c2"
android:text="*"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_7"
android:text="7"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_8"
android:text="8"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_9"
android:text="9"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_j1"
android:text="-"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_0"
android:layout_gravity="fill_horizontal"
android:layout_columnSpan="2"
android:text="0"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:id="@+id/bt_main_d1"
android:text="."
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="counter"
android:layout_rowSpan="2"
android:id="@+id/bt_main_j2"
android:layout_gravity="fill_vertical"
android:text="+"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_columnSpan="3"
android:id="@+id/bt_main_d2"
android:onClick="counter"
android:layout_gravity="fill_horizontal"
android:text="="
/>
<Space />
</GridLayout>
代码执行如下