標籤:
監聽點擊事件實現的三種方法:1、匿名內部類2、外部類3、直接實現介面
1.匿名內部類:
package com.jereh.calculator;import android.content.Context;import android.os.Bundle;import android.os.PersistableBundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.util.Date;public class MarqueeActivity extends AppCompatActivity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_marquee); button1 = (Button)findViewById(R.id.buttonl); button1.setOnClickListener(new OnclickListener() { // 匿名內部類實現了OnclickListener介面的方法 @Override public void onClick(View v) { super.onClick(v); Toast.makeText(MarqueeActivity.this,"內部實現方法",Toast.LENGTH_LONG).show(); } }); }}
2、外部類:
package com.jereh.calculator;import android.content.Context;import android.os.Bundle;import android.os.PersistableBundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.util.Date;public class MarqueeActivity extends AppCompatActivity { private Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_marquee); button1 = (Button)findViewById(R.id.buttonl); button1.setOnClickListener(new OnclickListener1() { // 匿名內部類實現了OnclickListener介面的方法 //傳進一個外部類,並且重寫了OnclickListener1的方法,作用就是體現在對onClick(View v)的功能擴充 @Override public void onClick(View v) { super.onClick(v); Toast.makeText(MarqueeActivity.this,"內部實現方法",Toast.LENGTH_LONG).show(); } }); }}//外部類,實現了View.OnClickListener的介面中的方法class OnclickListener1 implements View.OnClickListener { @Override public void onClick(View v) { Log.v("lol", new Date().toString()); }}
3、直接實現介面
做點擊事件監聽,大部分使用匿名內部類,其他兩種寫法能做到的事情它都能做到,其他不能實現的事情它也可以做到
Android監聽點擊事件實現的三種方法