Android 从已创建的库获取响应

Android 从已创建的库获取响应,android,android-library,Android,Android Library,我的目标是创建一个可重用的库,如果我想创建一个新项目,我可以将其包括在内。这方面的示例是登录 我将分别创建登录项目,进行设计和编码。现在,如果我要在我的一个项目中使用它,我只需要将它作为一个依赖项包含进去。到目前为止,这是工作,登录显示在我的新项目 我遇到的挑战是如何处理或获得登录到我的应用程序的结果的响应。由于它们是独立的项目 这方面的最佳策略是什么。或者有没有更好的方法来创建可重用的库 感谢在活动和片段(已加载到活动)之间的交互非常简单。您可以将公共方法添加到该片段,然后在活动方法中调用它。

我的目标是创建一个可重用的库,如果我想创建一个新项目,我可以将其包括在内。这方面的示例是登录

我将分别创建登录项目,进行设计和编码。现在,如果我要在我的一个项目中使用它,我只需要将它作为一个依赖项包含进去。到目前为止,这是工作,登录显示在我的新项目

我遇到的挑战是如何处理或获得登录到我的应用程序的结果的响应。由于它们是独立的项目

这方面的最佳策略是什么。或者有没有更好的方法来创建可重用的库


感谢在
活动
片段
(已加载到
活动
)之间的交互非常简单。您可以将公共方法添加到该
片段
,然后在
活动
方法中调用它。否则,如果您的登录过程是一个异步任务(即将在后台线程中完成),您可能需要一个接口来通知父
活动
登录过程已经完成

下面是一些用于入门的代码片段

public LoginFrag extends Fragment {
    // Other stuff        

    /* This is your own method which checks user credentials */
    public void check() {
        boolean success = false;

        // codes for checking username and password
        // and then update 'success' variable

        // with this code you'll inform the parent activity
        if(mListener != null) {
            mListener.onResult(success);
        }
    }

    OnLoginResultListener mListener;        

    public void setOnLoginResultListener(OnLoginResultListener listener) {
        mListener = listener;
    }        

    public interface OnLoginResultListener {
        public void onResult(boolean success);
    }
}
这是父活动代码:

public MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle b) {
        //Other stuff
        LoginFrag login = new LoginFrag(); // from the library
        login.setOnLoginResultListener(new OnLoginResultListener(){

            @Override
            public void onResult(boolean success) {
                // do stuff here with 'success' for example:
                String message;
                if(success) {
                    message = "Congratulation! you've logged in";
                } else {
                    message = "Ooops! login failed!";
                }
                console.log(message);
            }
        });

        // Now load this fragment by 'FragmentManager'
        // via 'getSupportFragmentManager()'
    }
}

您的“登录组件”是一个
活动还是一个
片段
?我使用了片段(android.support.v4.app.Fragment)。我试图使用singleton,但我仍然无法理解逻辑。希望你能给出一些逻辑,谢谢你分享你的片段。我来看看。顺便说一下,您还可以发布用于创建OnLoginResultListener的代码段。这是我第一次创建这样的类。我想我需要一个指南来避免把事情搞砸。@Chullots Java接口无法实现!他们所有的方法都是公共抽象的,所以你不能实现它们,谷歌java界面提供更多信息