一、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中加入
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中加上
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();
}
}
}
}
}