我的目标是创建一个可重用的库,如果我要创建新项目,我可以包含它。例如登录。
我将分别创建登录项目,进行设计和编码。现在,如果我将在我的一个项目中使用它,我将只需将其包含为依赖。到目前为止,这是有效的,登录显示在我的新项目中。
我遇到的挑战是如何处理或获取登录结果对我的应用程序的响应。由于它们是独立的项目,
最佳策略是什么?或者有更好的方法来创建可重用的库。
由于
答案 0 :(得分:1)
Activity
和Fragment
之间的交互(已加载到Activity
上)非常容易。您可以向Fragment
添加公共方法,然后在Activity
方法中调用它。否则,如果您的登录过程是异步任务(即将在后台线程中完成),您可能需要一个接口来通知父Activity
登录过程已完成。
这里有一些入门的代码片段。
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()'
}
}