Android接口初了解

//此处是MyBaseadapter 类。。省略。。。

//定义接口

public interface OnItemClickLitener

    {

        void onItemClick(View view, int position);

        void onItemLongClick(View view , int position);

    }

    public OnItemClickLitener onItemClickLitener;


//暂时叫关联接口    

public void setOnItemClickLitener(OnItemClickLitener onItemClickLitener){

        this.onItemClickLitener = onItemClickLitener;

    }


//设置回调事件

       if (onItemClickLitener != null){

//这里你需要单击的控件(自己diy)

           holder.text.setOnClickListener(new View.OnClickListener() {

               @Override

               public void onClick(View v) {


                   int pos = holder.getLayoutPosition();

                   onItemClickLitener.onItemClick(v,pos);


               }

           });

       }


    }




//activtiy代码

   MyBaseadapter baseadapter = new MyBaseadapter(this,list);



//实现接口

 baseadapter.setOnItemClickLitener(new MyBaseadapter.OnItemClickLitener() {

            @Override

            public void onItemClick(View view, int position) {


                Toast.makeText(MainActivity.this,position+"",Toast.LENGTH_SHORT).show();

            }


            @Override

            public void onItemLongClick(View view, int position) {


            }

        });


//理下思路:首先我们在MyBaseadapter 定义了一个接口,接口有两个方法。。。可以看做单击事件的监听方法(接口方法不仅仅只有这么一点点功能),然后我们在MyBaseadapter 写了一个获取接口对象的回调方法(注意:这就是接口回调的回调方法),接着在getview中关联控件的单击事件把postion和view返回出去(功能不唯一,有接口干啥事都方便);然后调用这个类的时候执行回调方法。。。控件的单击事件也就产生了。。



可能有人会说listview的单击事件就满足了为啥要多此一举。。。(不过这玩意是接口回调。。所以。。麻烦一些咯)



你可能感兴趣的:(android、接口、初步)