欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android中加载事件的方式

程序员文章站 2024-03-16 18:41:58
...

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);
    }
}