Android中加载事件的方式
- 通过内部类的方式实现
- 通过外部类的方式实现
- 通过属性的方式实现
- 通过自身实现接口的方式实现
通过内部类的方式实现 Demo
btn_Login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//要处理的业务
}
});
通过外部类的方式实现
//调用事件代码
btn_Login.setOnClickListener((View.OnClickListener) new Login());
//外部类
public class Login implements SearchManager.OnCancelListener {
@Override
public void onCancel() {
//要处理的业务
}
}
通过属性的方式实现
<!--布局文件的代码主要是 onClick属性-->
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Login"
android:textAllCaps="false"
android:onClick="login"
/>
//在Activity中写一个 与 绑定的属性名称相同的方法 View 参数不能少
public void login (View v) {
//检测账号密码是否为空
if (et_UserName.getText().length()==0|| et_Password.getText().length()==0){
Toast.makeText(this,"Username or password cannot is null!",Toast.LENGTH_SHORT).show();
return;
}
}
通过自身实现接口的方式实现
public class MainActivity extends AppCompatActivity implements SearchManager.OnCancelListener {
@Override
public void onCancel() {
//要处理的业务
}
EditText et_UserName;
EditText et_Password;
Button btn_Login;
CheckBox cb_Rember;
public final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_UserName = (EditText) findViewById(R.id.et_UserName);
et_Password = (EditText) findViewById(R.id.et_Password);
btn_Login = (Button) findViewById(R.id.btnLogin);
cb_Rember = (CheckBox) findViewById(R.id.cbRemember);
this.btn_Login.setOnClickListener((View.OnClickListener) this);
}
}