Android 常见界面控件(简单控件篇)
目录
3.1 简单控件的使用
3.1.1 TextView
TextView控件用于显示文本信息,我们可以在XML布局文件中以添加属性的方式来控制TextView的样式,TextView在XML布局文件中的常用属性:
注意: Android中的控件样式除了可以使用XML属性设置外,也可以使用Java中的方法设置。控件的每一个XML属性都对应一个Java方法,例如,android:textColor属性对应的是TextView的setTextColor()方法
3.1.2 Button
Button控件表示按钮,它继承自TextView控件,既可以显示文本,又可以显示图片,同时也允许用户通过点击来执行操作,当Button控件 被点击时,被按下与弹起的背景会有一个动态的切换效果,这个效果就是点击效果
通常情况下,所有控件都可以设置点击事件,Button控件也不例外,Button控件最重要的作用就是响应用户的一系列点击事件
为Button控件设置点击事件的方式:
- 在布局文件中将Button控件的onClick属性值指定,然后再Activity中定义专门的方法来实现Button的点击事件
- 使用匿名内部类的方式在Activity中直接实现Button的点击事件
- 在Activity中实现View.onClickListener接口设置点击事件
(1)在布局文件中指定onClick属性的方式设置点击事件,可以在布局文件中指定onClick属性的值来设置Button控件的点击事件
<Button
...
android:onClick = "click"/>
在Button控件指定了onClick属性后,我们可以在Activity中定义专门的方法来实现Button控件的点击事件,需要注意的在Activity中定义实现点击事件的方法名必须与onClick的属性值一致
(2)使用匿名内部类的方式设置点击事件,在Activity中,可以使用匿名内部类的方式为Button控件设置点击事件
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
//实现点击事件的代码
}
});
为Button控件设置setOnClickListener()方法实现对Button控件点击事件的监听,setOnClickListener()方法中传递的参数是一个匿名内部类,如果监听到按钮被点击,那么城西会调用匿名内部类中的onClick方法实现对Button控件的点击事件
(3)Activity实现onClickListener接口的方式设置点击事件,将当前Activity实现View.OnClickListener接口,同样可以为Button控件设置点击事件
public class MainActivity extends AppCompatActivity implements View OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState){
...
btn.setOnClickListener(this); //设置Button控件的监听事件
}
@Override
public void onClick(View view){
//实现点击事件的代码
}
}
注意:在使用第三种方法实现Button控件的点击事件时,要先调用控件的setOnClickListener()方法设置点击监听事件
前两种方法适合于按钮较少的情况,第三种反之
典例:
Mainactivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button bt1,bt2,bt3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button)findViewById(R.id.btn01);
bt2 = (Button)findViewById(R.id.btn02);
bt3 = (Button)findViewById(R.id.btn03);
bt3.setOnClickListener(this);
//实现按钮1的点击事件
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bt1.setText("按钮1已被点击");
}
});
}
//实现按钮2的点击事件
public void click(View view){
bt2.setText("按钮2已被点击");
}
//实现按钮3的点击事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn03:bt3.setText("按钮3已被点击");break;
}
}
}
activity_main.xml
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button1"
android:id="@+id/btn01" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button2"
android:id="@+id/btn02"
android:onClick="click" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button3"
android:id="@+id/btn03" />
3.1.3 EditText
EditText表示编辑框,它是TextView的子类,用户可在此控件中输入信息。除了支持TextView控件的属性外,EditText还 支持一些其他的常用属性:
3.1.4 ImageView
ImageView表示图片,继承自View,可以加载各种图片资源,ImageView支持的XML属性:
3.1.5 RadioButton
RadioButton表示单选按钮,它是Button的子类。每-一个单选按钮都有“选中”和“未选中”两种状态,这两种状态是通过android:checked属性指定的。当可选值为true时,表示选中状态,否则,表示未选中状态
在Android程序中RadioButton经常与RadioGroup配合使用,实现RadioButton的单选功能。RadioGroup是单选组合框,可容纳多个RadioButton,但是在RadioGroup中不会出现多个RadioButton同时选中的情况
在XML布局文件中,RadioGroup和RadioButton配合使用的语法格式:
<RadioGroup
android:属性名 = "属性值"
...>
<RadioButton>
android:属性名 = "属性值"
.../>
</RadioGroup>
注意:RadioGroup继承于LinearLayout,可以使用android:orientation属性控制RadioGroup的排列方向
3.1.6 CheckBox
CheckBox表示复选框,它是Button的子类,用于实现多选功能,每一个复选框都有“选中”和“未选中”两种状态,这两种状态由android:checked属性决定
典例:
Mainactivity.java文件:
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
private TextView hobby;
private String hobbys;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化CheckBox控件
CheckBox basketball = (CheckBox)findViewById(R.id.like_basketball);
CheckBox swim = (CheckBox)findViewById(R.id.like_swim);
CheckBox code = (CheckBox)findViewById(R.id.like_code);
CheckBox dance = (CheckBox)findViewById(R.id.like_dance);
basketball.setOnCheckedChangeListener(this);
swim.setOnCheckedChangeListener(this);
code.setOnCheckedChangeListener(this);
dance.setOnCheckedChangeListener(this);
hobby = (TextView)findViewById(like_hobby);
//用来存放选中的CheckBox信息
hobbys = new String();
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String motion = buttonView.getText().toString();
if(isChecked){
if(!hobbys.contains(motion)){
hobbys = hobbys+motion;
hobby.setText(hobbys);
}else {
if (hobbys.contains(motion)){
hobbys = hobbys.replace(motion,"");
hobby.setText(hobbys);
}
}
}
}
}
代码解释:
在MainActivity中实现了CompoundButton.OnCheckedChangeListener接口并重写了onCheckedChanged()方法,在该方法中实现了ChexBox控件的点击事件
13-16行代码设置了4个CheckBox控件的监听事件
23行代码重写了onCheckedChanged()方法,该方法中的button View与isChecked分别表示被点击的控件和选中状态
activity_main.xml文件:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请选择你的兴趣爱好:"
android:textSize="18sp"
android:textColor="#FF8000"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="篮球"
android:id="@+id/like_basketball"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="游泳"
android:id="@+id/like_swim"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="代码"
android:id="@+id/like_code"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="跳舞"
android:id="@+id/like_dance"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您选择的兴趣爱好为:"
android:textSize="22sp"/>
<TextView
android:id="@+id/like_hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#FF8000"/>
启动测试
3.1.7 Toast
Toast是Android系统提供的轻量级信息提醒机制,用于向用户提示即时信息,显示在程序界面的最上层,显示一段时间后自动消失,不会打断当前操作,也不获得焦点
Toast.makeText(Context,Text,Time).show();
//用makeText方法设置提醒信息,再用Show方法显示
- Context:表示应用程序环境的信息类,即当前组件的上下文环境,Context是一个抽象类,如果在Activity中使用Toast提示信息,参数可设置为“当前Activity.this”
- Text:表示提示的字符串信息
- Time:表示显示信息的时长,属性值包括Toast.LENGTH_SHORT和Toast.LENGTH_LONG
bt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"WIFI连接已断开",Toast.LENGTH_LONG).show();
}
});
启动测试
如果文章对您有所帮助,记得一键三连支持一下哦~