回调内的代码未运行

时间:2014-10-31 07:10:06

标签: java android interface

我是java的新手。我坚持这个问题。一切看起来都不错。 代码:

testCall.java

package com.example.callbacktest;

public interface testcall {
    public void onEvent();
}

testLibrary.java

  package com.example.callbacktest;

  public class testLibrary {

      testcall listener;
       public testLibrary(){

        }
        public void createSession(  testcall callback ){
            this.listener = callback;
            System.out.println("Out from library");
        }
    }

MainActivity.java

package com.example.callbacktest;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        testLibrary obj = new testLibrary();
        obj.createSession(new testcall(){

            @Override
            public void onEvent() {
                System.out.println("OUT from onEvent");

            }

        });
    }

}

系统仅记录打印"从库中输出" 。它还应该打印来自onEvent" OUT 。 回调内的代码未运行。我不明白我在这里缺少什么

2 个答案:

答案 0 :(得分:1)

您在测试库中错过了对listener.onEvent()的调用。

答案 1 :(得分:1)

您没有在testLibrary

中调用回调方法

在testLibrary类

中更改此方法
 public void createSession(  testcall callback ){
        this.listener = callback;
        System.out.println("Out from library");
        listener.onEvent();  //Added line
    }