一、Android点击事件四种写法:
- (不推荐)结合layout文件声明方法
- 内部实现类
- Activity实现
OnClickLitener
- 匿名内部实现类
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
去获取控件 - 设置控件的事件(例如:点击事件)
- 在事件的方法中处理事件
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. 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();
}
}
}
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();
}
}
}
}
}
网友评论