当前位置: 代码迷 >> Android >> 關於使用接口(介面)之困惑
  详细解决方案

關於使用接口(介面)之困惑

热度:6   发布时间:2016-04-28 02:15:30.0
關於使用接口(介面)之疑惑?
本帖最后由 start8588 于 2015-03-02 14:43:49 编辑
最近開始研究 Android...從不同書上範例(Demo)發現不同之處如下 :
    // TODO : 1.使用 OnClickListener
    OnClickListener listener = new OnClickListener() {
        public void onClick(View v) {
            btn = (Button) v;
            switch (btn.getId()) {
                case R.id.btn1:
                    // ...;
                    break;
                case R.id.btn2:
                    // ...;
                    break;
                // ...
            }
        }
    };

    // TODO : 2.使用 Button.OnClickListener
    Button.OnClickListener listener = new Button.OnClickListener() {
        public void onClick(View v) {
            btn = (Button) v;
            switch (btn.getId()) {
                case R.id.btn1:
                    // ...;
                    break;
                case R.id.btn2:
                    // ...;
                    break;
                // ...
            }
        }
    };
    
    // TODO : 3.使用 View.OnClickListener
    View.OnClickListener listener = new View.OnClickListener() {
        public void onClick(View v) {
            btn = (Button) v;
            switch (btn.getId()) {
                case R.id.btn1:
                    // ...;
                    break;
                case R.id.btn2:
                    // ...;
                    break;
                // ...
            }
        }
    };


請問大牛們上述三種有何不同嗎?
------解决思路----------------------
肯定有区别了,看你需要什么onclick,貌似普通的view都是View.OnClickListener
------解决思路----------------------
引用:
Quote: 引用:

肯定有区别了,看你需要什么onclick,貌似普通的view都是View.OnClickListener


引用:
看似不同,其实都是一样的,都是来自View的OnClickListener。


感謝回應~ 貌似? 看似? 這下讓我無所適從啦~ 做學問總是要追根究底.實事求是方能胸有成竹囉~ 希望能有更精確的解釋呀!


第一个:你看看import来自于哪?你会发现其实它就是(第三个)View的OnClickListener。
第二个:Button最终的父类,它就是View,那button的OnClickListener来自于哪里?这下开明了吧。
------解决思路----------------------
本质是全部一样

1导入了View.OnClickListener所以没写(因为有其他类里有OnClickListener,所以要么是View.OnClickListener的写法,要么就import进来)
import android.view.View;
import android.view.View.OnClickListener;

2的话,button是view的子类,OnClickListener就是View的
import android.view.View;就可以

而3和2一样,就写全了View.OnClickListener

  相关解决方案