Android中如何使用基于监听的事件处理(上)

版权声明:文章内容系为本人原创,如需转载,请注明出处。 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本身");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43778720/article/details/87432399