版权声明:文章内容系为本人原创,如需转载,请注明出处。 https://blog.csdn.net/weixin_43778720/article/details/87432399
一、直接绑定标签—布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".chapter05.ListenerImplActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="click"
android:text="直接绑定到标签" />
</LinearLayout>
二、直接绑定标签—Activity
public class ListenerImplActivity extends Activity {
private final String TAG = ListenerImplActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listener_impl);
}
public void click(View view) {
Log.i(TAG, "直接绑定到标签");
}
}
三、直接绑定标签—运行效果
四、匿名内部类—布局
<Button
android:id="@+id/btn_anonymous_innerclass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="匿名内部类" />
五、匿名内部类—Activity
public class ListenerImplActivity extends Activity {
private final String TAG = ListenerImplActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listener_impl);
Button btnAnonymousInnerclass = findViewById(R.id.btn_anonymous_innerclass);
btnAnonymousInnerclass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "匿名内部类");
}
});
}
}
六、匿名内部类—运行效果
七、内部类—布局
<Button
android:id="@+id/btn_innerclass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="内部类" />
八、内部类—Activity
public class ListenerImplActivity extends Activity {
private final String TAG = ListenerImplActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listener_impl);
Button btnInnerClazz = findViewById(R.id.btn_innerclass);
InnerListenerClazz innerListenerClazz = new InnerListenerClazz();
btnInnerClazz.setOnClickListener(innerListenerClazz);
}
class InnerListenerClazz implements View.OnClickListener {
@Override
public void onClick(View v) {
Log.i(TAG, "内部类");
}
}
}
九、内部类—运行效果
十、外部类—布局
<Button
android:id="@+id/btn_externalclass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="外部类" />
十一、外部类
public class ExternalClassListener implements View.OnClickListener {
private final String TAG = ExternalClassListener.class.getSimpleName();
@Override
public void onClick(View v) {
Log.i(TAG, "外部类");
}
}
十二、外部类—Activity
public class ListenerImplActivity extends Activity {
private final String TAG = ListenerImplActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listener_impl);
Button btnExternalClazzListener = findViewById(R.id.btn_externalclass);
ExternalClassListener externalClassListener = new ExternalClassListener();
btnExternalClazzListener.setOnClickListener(externalClassListener);
}
}
十三、外部类—运行效果
十四、Activity本身—布局
<Button
android:id="@+id/btn_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Activity本身" />
十五、Activity本身—Activity
public class ListenerImplActivity extends Activity implements View.OnClickListener {
private final String TAG = ListenerImplActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listener_impl);
Button btnActivity = findViewById(R.id.btn_activity);
btnActivity.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.i(TAG, "Activity本身");
}
}