目录
1 章节目录
-
Toast
-
点击事件处理
-
ImageButton
-
RadioButton
-
CheckBox
2 Toast
-
Toast是Android系统提供的轻量级信息提醒机制,用于向用户提示即时消息,它显示在应用程序界面的最上层,显示一段时间后自动消失不会打断当前操作,也不获得焦点。
2.1 Toast的使用
-
使用Toast提示信息的实例代码:
Toast.makeText(Context,Text,Time),show();
-
这段代码首先调用了Toast的makeText方法用来设置提示信息,
-
Context:表示应用程序环境的信息,就是当前组件的上下文环境,如果在Activity中使用的话,那么该参数可设置为"Activity.this",
-
Text:表示你需要提示的信息,
-
Time:表示提示信息的时长,其属性值有"LENGTH_SHORT 和 LENGTH_LONG",这两个值分别表示“短时间”,“长时间”,
-
然后调用了show方法来讲提示信息显示到界面中。
Toast.makeText(MainActivity.this,"WIFI已断开",Toast.LENGTH_SHORT).show();
3 点击事件处理
Android点击事件四种写法
-
(不推荐)结合layout文件声明方法
-
内部实现类
-
Activity实现
OnClickLitener
-
匿名内部实现类
3.1(不推荐)结合layout文件声明方法实现点击事件
-
先在LoginActivity.java中加入
btnClick
方法
public void btnClick(View view){
//参数 Context, text, duration
//上下文, 要提示的信息, 提示显示的时长
Toast.makeText(LoginActivity,this, "提示:你点击了按钮",Toast.LENGTH.SHORT).show();
}
-
然后在布局文件
activity_login.xml
中加入
<!--登录按钮-->
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/colorWhite"
android:textSize="22sp"
android:onClick="btnClick"
android:text="登 录"/>
事件写法(后面三种写法)的思路:
-
根据控件的
ID
去获取控件 -
设置控件的事件(例如:点击事件)
-
在事件的方法中处理事件
3.2 内部实现类完成点击事件
控件 | 缩写前缀 |
---|---|
TextView | tv |
EditTextet | et |
ImageView | iv |
Button/RadioButton/ImageButton | btn/rb/ib |
RelativeLayout/LinearLayout/FrameLayout | rl/ll/fl |
ListView | lv |
WebView | wv |
CheckBox | cb |
ProgressBar | pb |
-
在
activity_login.xml
中加上
<!--登录按钮-->
<Button
android:id="@+id/btn_login_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/colorWhite"
android:textSize="22sp"
android:text="登 录"/>
-
之后在
LoginActivity
这个类中实现一个ClickListener
类
Class ClickListener implements View.onClickListener{
@Override
public void onClick(View v){
int id = v.getId();
switch(id) {
case R.id.btn_login_submit:
Toast.makeText(LoginActivity.this,"提示:你点击了按钮,内部实现类",Toast.LENGTH.LONG).show();
break;
}
}
}
-
之后在LoginActivity的
Oncreate
中创建内部实现类的对象并设置点击事件
@Override
protected void onCreate(@Nullable Bundle savedInstanceState){
super.OnCreate(savedInstanceState);
//设置布局
setContentView(R.layout.activity_login);
//获取控件
Button btnSubmit = findViewById(R.id.btn_login_submit);
//②创建内部实现类
ClickListener clickListener = new ClickListener();
//②设置点击事件
btnSubmit.setOnClickListener(clickListener);
}
3.3 Activity实现OnClickListener
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置布局
setContentView(R.layout.activity_login);
//获取控件
Button btnSubmit = findViewById(R.id.btn_login_submit);
//设置点击事件
btnSubmit.setOnClickListener(this);
}
// 重载OnClickListener
@Override
public void onClick(View view){
switch(view.getId()){
case R.id.btn_login_submit:
Toast.makeText(LoginActivity.this,
"提示:你点击了按钮,Activity实现了OnClickLitener",Toast.LENGTH_LONG).show();
}
}
}
3.4 匿名内部实现类
public class LoginActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState){
//设置布局
setContentView(R.layout.activity_login);
//获取控件
Button btnSubmit = findViewById(R.id.btn_login_submit);
//匿名内部类实现的方式
btnSubmit.setOnClickListener(new View.OnClickListener){
@Override;
public void onClick(View view){
Toast.makeText(LoginActivity.this,
"提示:你点击了按钮,匿名的内部实现类",Toast.LENGTH_LONG).show();
}
}
}
}
}
4 ImageButton
ImageButton显示了带有图像(而不是文本)的按钮,用户可以按下或单击该按钮。
4.1 ImageButton的基本使用
-
属性:
属性 | 说明 |
---|---|
android:adjustViewBounds | 如果您希望ImageView调整其边界以保留其可绘制对象的纵横比,请将其设置为true。 |
android:baseline | 这是该视图内基线的偏移量。 |
android:baselineAlignBottom | 如果为true,则图像视图将根据其底边与基线对齐。 |
android:cropToPadding | 如果为true,则图像将被裁剪以适合其填充。 |
android:src | 这将可绘制对象设置为此ImageView的内容 |
android:background | 这是一个可绘制的背景。 |
android:contentDescription | 这定义了简短描述视图内容的文本。 |
android:id | 这提供了该视图的标识符名称。 |
android:onClick | 这是单击该视图时在该视图上下文中要调用的方法的名称。 |
android:visibility | 这控制了视图的初始可见性。 |
-
案例:
<ImageButton //使用ImageButton标签
android:id="@+id/img_button" // ImageButton的ID,和Button的ID一样
android:layout_height="wrap_content" //ImageButton的宽和高属性,
android:layout_width="wrap_content"
android:src=@drawable/img_name >
//ImageButton上显示的图片,表示从图片资源文件中读取名字为img_name的图片
5 RadioButton
-
RadioButton
为单选框,存在多个选项情况下,需要将RadioButton
放到RadioGroup
组中使用,从而实现单选功能。 -
RadioGroup
中可以通过orientation
来控制排列方式,水平还是垂直。
5.1 RadioButton的基本使用
-
RadioGroup
常用属性属性 说明 getChildCount() 获取按钮组中单选按钮数量 getChildAt() 获取按钮组中指定索引的单选按钮 check() 设置单选按钮 ID
进行选中 -
RadioButton
常用属性属性 说明 isChecked() 判断单选按钮是否选中 setChecked() 设置选中状态 -
案例:
<!-- RadioGroup --> <RadioGroup android:id="@+id/radioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:checkedButton="@id/man"> <!-- RadioButton --> <RadioButton android:id="@+id/man" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textSize="16sp"/> <!-- RadioButton --> <RadioButton android:id="@+id/woman" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" android:textSize="16sp"/> <!-- RadioButton --> <RadioButton android:id="@+id/none" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="无" android:textSize="16sp"/> </RadioGroup>
5.2 点击事件
RadioGroup radgroup = (RadioGroup) findViewById(R.id.radioGroup);
//第一种获得单选按钮值的方法
//为radioGroup设置一个监听器:setOnCheckedChanged()
radgroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radbtn = (RadioButton) findViewById(checkedId);
Toast.makeText(getApplicationContext(), "按钮组值发生改变,你选了" + radbtn.getText(), Toast.LENGTH_LONG).show();
}
});
6 CheckBox
-
Android CheckBox 是可以由用户切换的开/关开关。为用户提供一组互不排斥(多选)的可选选项时,应使用CheckBox。
6.1 CheckBox的基本使用
-
属性:
属性 说明 android:autoText 如果设置,则指定此TextView具有文本输入法,并自动纠正一些常见的拼写错误。 android:drawableBottom 这是要在文本下方绘制的图形。 android:drawableRight 这是要在文本右侧绘制的图形。 android:editable 如果设置,则指定此TextView具有输入法。 android:text 这是要显示的文本 android:background 这是一个可绘制的背景。 android:contentDescription 这定义了简短描述视图内容的文本。 android:id 这提供了该视图的标识符名称。 android:onClick 这是单击该视图时在该视图上下文中要调用的方法的名称。 android:visibility 这控制了视图的初始可见性。 -
案例:
<CheckBox android:id="@+id/checkbox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button1" android:layout_alignLeft="@+id/linearLayout1" android:text="牛仔" />
6.2 点击事件
-
xml代码
<CheckBox android:id="@+id/cb_one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button1" android:layout_alignLeft="@+id/linearLayout1" android:text="牛仔"/> <CheckBox android:id="@+id/cb_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/checkbox3" android:layout_alignBottom="@+id/checkbox3" android:layout_marginLeft="27dp" android:layout_toRightOf="@+id/checkbox3" android:text="面包" /> <CheckBox android:id="@+id/cb_three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/checkbox1" android:layout_alignBottom="@+id/checkbox1" android:layout_toRightOf="@+id/button1" android:text="黄油" />
-
java代码
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{ private CheckBox cb_one; private CheckBox cb_two; private CheckBox cb_three; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cb_one = (CheckBox) findViewById(R.id.cb_one); cb_two = (CheckBox) findViewById(R.id.cb_two); cb_three = (CheckBox) findViewById(R.id.cb_three); cb_one.setOnCheckedChangeListener(this); cb_two.setOnCheckedChangeListener(this); cb_three.setOnCheckedChangeListener(this); } @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b){ if(compoundButton.isChecked()) Toast.makeText(this,compoundButton.getText().toString(),Toast.LENGTH_SHORT).show(); } }