精华内容
下载资源
问答
  • Android 自定义接口回调

    千次阅读 2018-10-23 14:13:55
    1.定义一个简单的接口回调 下面是定义一个简单的接口,实现的功能是,设置名字爱好,并且返回给主 Activity。 1.1 自定义一个接口  定义一个名字为 setNameListener() 的接口类: /** * author: wu * date: ...

    1.定义一个简单的接口回调

    下面是定义一个简单的接口,实现的功能是,设置名字爱好,并且返回给主 Activity。

    1.1 自定义一个接口 
    定义一个名字为 setNameListener() 的接口类:

    /**
     * author: wu
     * date: on 2018/10/23.
     * describe:接口示范
     */
    
    public interface setNameListener {
        void Listener(String name,String like);
    }

    1.2 自定义工具类 SetName 

    自定义一个工具类名字为 SetName ,作用是设置名字和爱好:

    /**
     * author: wu
     * date: on 2018/10/23.
     * describe: 工具类,设置名字,爱好
     */
    
    public class SetName {
        public static void setName(setNameListener listener){
            listener.Listener("张三","吃零食");
        }
    }

    1.3 在 Activity 中调用接口,取得返回值

    在 MainActivity 中嗲用接口类,并且取得 setName 类中返回的值:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            SetName.setName(new setNameListener() {
                @Override
                public void Listener(String name, String like) {
                    Log.e("=====", "姓名是:" + name);
                    Log.e("=====", "爱好是:" + like);
                }
            });
        }
    }

    1.4 打印结果

    下面是打印结果:

    Android 自定义接口回调的简单使用就结束了。

    展开全文
  • 通过简单的自定义Dialog来理解接口回调callback机制
  • Android 自定义回调接口 博主小白,此篇文章为了加深自己对回调接口的印象 另外也为巩固已有的知识 第一步回调接口 接口名字随便命名 自己清楚意思就可以了 可以回调点击监听 长按监听 拖动监听 public ...

    Android 自定义回调接口

    此篇文章为了加深自己对回调接口的印象 另外也为巩固已有的知识

    第一步回调接口

    接口名字随便命名 自己清楚意思就可以了 可以回调点击监听 长按监听 拖动监听

    public interface OnTopTopicClickListener {
            void onClick(View view);
        }
    

    第二步初始化接口

    在你想要回调的地方 初始化这个接口

     private OnTopTopicClickListener onTopTopicClickListener;
    

    第三步给该变量设置set方法

      public void setOnTopTopicClickListener(OnTopTopicClickListener onTopTopicClickListener) {
            this.onTopTopicClickListener = onTopTopicClickListener;
        }
    

    第四步设置回调方法

    在你初始化想要回调的组件的时候 使用该回调接口 这一句有点绕 请慢慢读 慢慢理解 看代码理解

    mUPMarqueeView = findViewById(R.id.view_flipper);//初始化主页头条
            findViewById(R.id.iv_headline).setOnClickListener(this);
            mUPMarqueeView.setOnClickListener(view -> {
                if (onTopTopicClickListener != null) {
                    onTopTopicClickListener.onClick(view);
                }
            });
    

    五步调用回调接口

    这句话怎么理解 比如我现在 想在一个View里跳转 但是View 没有startActivity()这个方法那怎么办?
    使用回调 执行到上面四步之后 然后在你的主页面是Activity或者是Fragment都可以跳转
    这样就解决了不能跳转的尴尬局面!

     mHomeTopLayout.setOnTopTopicClickListener(view -> {
                startActivity(new Intent(getActivity(), HeadlineActivity.class));
            });
    

    与君共勉

    我要一步一步往上爬
    在最高点乘着叶片往前飞
    任风吹干流过的泪和汗
    我要一步一步往上爬
    等待阳光静静看着它的脸
    小小的天有大大的梦想
    我有属于我的天
    任风吹干流过的泪和汗
    总有一天我有属于我的天
    这里写图片描述

    展开全文
  • 该项目的主要功能是如何自定义Dialog,并通过接口回调的方式把参数传递到activity或者Fragment,主要强调的是一种思想,同时,也阐述了如何改变一个字符串中某部分文字的颜色,需要的小伙伴可以下载
  • 不是很懂java 的Interface 接口的具体怎么实现的。在网上看了很多例子,终于理解了那么点啊。 因为原来在学习做一个微信的语音功能要做到一个接口功能。微信的后面有时间会写出来。 Interface 主要用来描述这...

    不是很懂java 的Interface 接口的具体怎么实现的。在网上看了很多例子,终于理解了那么点啊。

    因为原来在学习做一个微信的语音功能要做到一个接口功能。微信的后面有时间会写出来。


    Interface 主要用来描述这类具有什么功能,而并不能给出每个功能的具体是实现。一个类可以实现多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。p.s.interface一定是public

    下面的例子就是自己写的一个例子可以尝试着自己写一个:

    接口回调的典型例子就是Android的Button监听事件了,

    button.setOnClickListener(new OnClickListerner({

    @Override
    public void onClick(View v) {
    System.out.println("调用回调函数");
    }

    });

    button的点击就是触发了回调的对象。

    当用户点击Button的时候,接口函数被回调。所以可以这样子理解java callback,当条件成立了,或者是触发了某个条件,而引起了函数的回调。这个就是我对Interface接口的理解。


    所以我们首先需要写一个Interface接口叫CallListener,然后写一个能调用该接口函数的类,叫做Call最后写一个用到Call类对象调用监听的NeedCall类。

    接口类:

    public interface CallListener {
    	public void finishCall();
    }
    Call类:

    public class Call {
    	CallListener callListener;  //定义接口对象
    	public void setOnCallListener(CallListener listener){ //接口对象构造(接口没有实例化,因为没有具体方法)
    		this.callListener=listener;
    	}
    	/*
    	 * 触发接口的回调方法,相当于button的点击触发,在主类方法调用该方法触发回调
    	 */
    	public void onCall(){
    		callListener.finishCall();
    	}
    }
    NeedCall类:

    public class NeedCall {
    
    	public static void main(String[] args) {
    		Call call=new Call();  //Call类的实例化
    		
    		call.setOnCallListener(new CallListener() {
    			
    			@Override
    			public void finishCall() {
    				System.out.println("对接口方法的重写,调用回调函数时调用该回调函数");
    			}
    		});
    		
    		call.onCall();  //真正触发回调的方法。
    	}
    }


    总结一下,要触发接口就是要构成触发接口的方法 。就像你要去监听一个人是否离开房间,就开一个口子传字条(相当于定义一个接口),再定义一个可以调用该接口的方法,最后那个人离开时触发你的监听条件。你只需要看着口子就可以,一旦条件触发,就构成了回调了。

    展开全文
  • Android java回调机制与自定义接口回调方法 发表于 2015-04-15 | 分类于 Android学习  | 摘自:...

    Android java回调机制与自定义接口回调方法

    摘自:http://baibig.me/2015/04/15/Android-java%E5%9B%9E%E8%B0%83%E6%9C%BA%E5%88%B6%E4%B8%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8E%A5%E5%8F%A3%E5%9B%9E%E8%B0%83%E6%96%B9%E6%B3%95/

    编程分为两类:系统编程(system programming)和应用编程(application programming)。所谓系统编程,简单来说,就是编写库;而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用。系统程序员会给自己写的库留下一些接口,即API(application programming interface,应用编程接口),以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。

    当程序跑起来时,一般情况下,应用程序(application program)会时常通过API调用库里所预先备好的函数。但是有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)。

    打个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。这里,“叫醒”这个行为是旅馆提供的,相当于库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数。而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数(to register a callback function)。

    如下图所示(图片来源:维基百科):


    可以看到,回调函数通常和应用处于同一抽象层(因为传入什么样的回调函数是在应用级别决定的)。而回调就成了一个高层调用底层,底层再回过头来调用高层的过程。(我认为)这应该是回调最早的应用之处,也是其得名如此的原因。
    在Java中,是通过接口和内部类实现回调功能的。android中经常会用到内部类方式的监听接口,如按钮中的onClickListener等,内部类接口中会用到回调方法;同时在多线程操作中,子线程进行耗时操作时,如向服务器发送请求,服务器的数据响应是无法进行的,这时候需要利用java的回调机制解决问题,通过重写回调方法获取请求结果。
    这里以网络下载为例,封装一个网络下载类,并且实现自定义接口回调方法。
    先建立一个接口:

    1
    2
    3
    4
    
    public interface HttpCallBackListener{
        void onFinish(String respose);
        void onError(Exception e);
    }
    

    建立封装的网络操作类:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    public class HttpUtil{
        public static void sentHttpRequest(final String address,final HttpCallBackListener listener){
            new Thread(new Runable(){
                public void run(){
                    HttpConnection connection=null;
                    try{
                        URL url=new URL(address);
                        connection=(HttpConnection)url.openConnection();
                        connection.setRequestMode("GET");
                        connection.setConnectTimeout(8000);
                        connection.setReadTimeout(8000);
                        connection.setDonInput(true);
                        connection.setDoOutput(true);
                        InputStream in=connection.getInputStream();
                        BufferReader br=new BufferReader(new InputStreamReader(in));
                        StringBuilder sb=new StringBuilder();
                        String line;
                        while((line=br.readLine())!=null){
                            sb.append(line);
                    }
                    if(listener!=null){
                    //回调onFinish方法
                        listener.onFinish(response);
                } catch(Exception e){
                    if(listenen!=null){
                        listener.onError();
    
                } final{
                    if(connection!=null){
                        connection.disconnect();
                    }
                }
            }
                }
            }
            }).start();
    }
    }
    

    在mainActivity活动中使用工具类:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            
            
            final Handler handler =new Handler(){
                @Override
                public void handleMessage(Message msg) {
                    if(msg.what==1){
                        String  info =(String) msg.obj;
                        Toast.makeText(getApplicationContext(), ""+info, Toast.LENGTH_SHORT).show();
                    }
                }
            };
            
             HttpUtil.sendHttpRequest("http://www.baidu.com",new HttpCallbackListener(){
                
                 public void onFinish(String response) {
                     System.out.println(response);
                        Message msg =handler.obtainMessage();
                        msg.what=1;
                        msg.obj=response;
                        handler.sendMessage(msg);
                  };
                  
                  public void onError(Exception e) { 
                      System.out.println("系统出错:"+e.toString());
                  };
              });
            
        }
    

    上面代码中通过HttpUtils工具类的sendHttpRequest()方法,传递一个网址参数,通过子线程操作执行数据下载,然后通过重写接口实例,重写接口方法,获取了之前操作的结果;然后将结果通过Handler发送消息,当handler触发handMessage回到方法的时候,就可以获取最终的效果!整个过程用到了接口回调机制和之前常用的监听器效果大同小异,非常有助于理解android的事件回调机制和匿名内部类的使用。

    展开全文
  • 自定义view点击事件的接口回调
  • 至于定位的配置之类的我就不多说,此篇文章重点在于接口回调 private static BDAbstractLocationListener mListener = new BDAbstractLocationListener() { @Override public void onReceiveLocation...
  • android自定义回调接口

    千次阅读 2015-08-09 10:51:25
    这是流传已久的故事: 某天,我打电话向你请教问题,当然是个难题,你一时想不出解决方法,我又不...初学者,这篇文章,第一次理解自定义回调接口,可以说这是写给自己看的。。。 直接上码 一个自定义的View:
  • 自定义CustomKeyboard, 继承自系统Keyboard,实现KeyboardView.OnKeyboardActionListener相关接口,以处理用户的点击回调自定义CustomKeyboardView, 继承自KeyboardView,实现自定义键盘绘制; 创建...
  • Android接口回调机制精炼详解

    万次阅读 多人点赞 2018-06-18 12:44:12
    面向接口编程是面向对象编程中的一个很重要的概念,即“接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类中实现的接口方法”。 (2)方法的调用和方法的实现 Java中所有的方法会出现在两个地方...
  • Android回调的应用场景很多,自定义View中监听Edittext输入字符便是其中一种。闲话少叙,直接上代码: 1、自定义View public class SearchLayout extends FrameLayout { private TextView search_close_btn; ...
  • 我这里使用的是自定义组合view点击事件的接口回调,底层还是调用的android原生的OnClickListener事件。效果图: 三步实现自定义view点击事件的接口回调。 第一步:写一个自己的点击事件的接口 public interface ...
  • Android系统中实现AIDL接口回调

    千次阅读 2018-10-15 18:43:57
    在文章《在Android系统中实现AIDL功能》中实现了aidl的接口调用,但是有时候客户端调用完接口函数后希望服务端有数据返回,这时候就需要定义回调函数。在《在Android系统中实现AIDL功能》的基础上实现接口回调。...
  • DialogFragment+接口回调

    2015-08-21 15:56:16
    一个自定义的dialog,其实只是继承了dialogfragment,博客地址为http://blog.csdn.net/u013651405/article/details/47834057
  • 看见网上一些回调的解释都很复杂的,特别基于Android自定义回调,感觉一头雾水,于是乎,我也写了这篇基于我对回调的解释。 先来看一个简单的例子: 有两个类 ClassA ,和 ClassB, ClassA调用ClassB里面的方法, ...
  • import android.annotation.SuppressLint; import android.content.Context; import android.hardware.Camera; import android.hardware.Camera.PictureCallback; import android.os.Environment; import android....
  • Java/Android中的函数调用&回调函数&自定义回调函数

    万次阅读 多人点赞 2015-10-23 12:47:01
    Android的学习过程中经常会听到或者见到“回调”这个词,那么什么是回调呢?所谓的回调函数就是:在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去...
  • 实现效果点击性别item,弹出对话框,选择男、女,返回值给item中的... 1、自定义dialog布局  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:orientation="vertical" >
  • android中经常会用到内部类方式的监听接口,如按钮中的onClickListener等,内部类接口中会用到回调方法;...这里以网络下载为例,封装一个网络下载类,并且实现自定义接口回调方法; 先建立一个接口: package
  • 自定义Dialog接口回调参数

    千次阅读 2016-12-22 11:35:14
    基本上所有的app项目都会有自定义dialog,但有时如果把dialog单独写成一个类,我们就需要考虑到如何将dialog的参数回调到activity或者fragment,当然有很多方法,这里主要讲的是通过接口回调的方式来把dialog中的...
  • android软件设计中会用到好多的控件,但系统自带的控件有好多不能够达到需要实现的功能或是控件不够美观。...下面我来讲一下如何写最简单的自定义控件。 1.创建android工程,取名为ControlsTes
  • PopupWindow是我们开发中的常客之一,使用起来也比较简单方便。  写了个最简单地自定义PopupWindow,记录下来,方便以后使用时直接在上面改动就可以。... // PopupWindow中控件点击事件回调接口 private IPopu
  • Android-接口回调

    2015-11-18 19:42:27
    Android接口回调整理首先上一个我回调思路图(形象思路看感受)下面是具体实现自定义一个MyView.javapublic class MyView extends View { public MyView(Context context, AttributeSet attrs) { super(context, ...
  • Android的按钮监听事件&自定义回调函数
  • 首先解决啥是回调: 我觉得这个例子比较好:某天,我打电话向你请教问题,当然是个难题,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,853
精华内容 18,741
关键字:

android自定义接口回调