当初入门学习的的点击事件有两种实现方式:
一种是直接使用setOnClickListener(new View.OnClickLstener())
方法
public class MainActivity extends AppCompatActivity {
private Button mbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "你点击了按钮", Tost.LENGTH_LONG).show();
}
});
}
另一种是通过类实现View.OnClickListener
接口,对控件设置点击事件时使用.setOnClickListener(this)
,然后在方法onclik()
中实现点击事件;
public class Mainivity extends AppCompatActivity implements View.OnClickListener {
private Button mbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn = findViewById(R.id.btn);
mbtn.setOnClickListener(this);
}
@Override
public void onClik(View v) {
switch(v.getId()) {
case R.id.btn:
Toast.makeText(MainActivity.this, "你点击了按钮", Tost.LENGTH_LONG).show();
break;
}
}
}
接下来介绍第三种方法,使用注释的方式去实现点击事件,看起来简单,但是会出现是吗问题就未知了,最近才发现这种方式
/**
*配置依赖
*再全局的,也就是app下的uild.gradle加上如下
*/
dependencies {
implementation 'com.jakwharton:butterknife:10.2.1'
}
/**
*第二步
*在需要使用的activity的类的
*onCreate方法里加上
*/
ButterKnife.bind(this);
/**
*第三步:实现点击事件
*使用注释@OnClick({R.id.[android:id的值]})
*在onClick方法里实现
*/
@OnClick({R.id.btn})
public void onClick(View v) {
switch(v.getId()) {
case R.id.btn:
Toast.makeText(ManiActivity.this, "你点击了按钮", Toast.LEMHTH_LONG).show();
breake;
}
}
在一个Activity里的完整代码如下
public class Mainivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick ({R.id.btn})
public void onClik(View v) {
switch(v.getId()) {
case R.id.btn:
Toast.makeText(MainActivity.this, "你点击了按钮", Tost.LENGTH_LONG).show();
break;
}
}
}