Android backfundle.Com-片段中的异步登录

Android backfundle.Com-片段中的异步登录,android,android-fragments,backendless,Android,Android Fragments,Backendless,我正在使用backfundle.com作为我的应用程序的后端。我需要在一个片段中登录我的用户。我一直收到一个语法错误,指出backfundle.com提供的异步登录方法无法识别。它在一个活动中工作得非常好。有人知道如何让它在片段中工作吗?以下是错误的屏幕截图: 以下是我的片段的代码: public class LoginFragment extends Fragment implements View.OnClickListener { private FragmentTransaction

我正在使用backfundle.com作为我的应用程序的后端。我需要在一个片段中登录我的用户。我一直收到一个语法错误,指出backfundle.com提供的异步登录方法无法识别。它在一个活动中工作得非常好。有人知道如何让它在片段中工作吗?以下是错误的屏幕截图:

以下是我的片段的代码:

public class LoginFragment extends Fragment implements View.OnClickListener {
private FragmentTransaction ft;
private Button registerButton, resetButton, loginButton;
EditText userName, password;
private boolean isPopUpOpen;
BackendlessUser userOne = new BackendlessUser();
private static final String PREFS_LOGGED_IN = "AreYouLoggedInFile";

public OnClickedListener listener;
public LogInInterface loggedInListener;

static interface OnClickedListener{
    public void buttonClicked(View v);
}

static interface LogInInterface{
    public void userLoggedIn(boolean loggedIn);
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    this.listener = (OnClickedListener)activity;
    this.loggedInListener = (LogInInterface)activity;
}

public LoginFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    isPopUpOpen = false;
    if (savedInstanceState!=null){
        if (savedInstanceState.getBoolean("isDialogOpen")){
            resetPopUpWindow();
        }
    }
    View view = inflater.inflate(R.layout.fragment_login, container, false);
    registerButton = (Button)view.findViewById(R.id.register_button);
    resetButton = (Button) view.findViewById(R.id.reset_button);
    password = (EditText)view.findViewById(R.id.fragment_login_password);
    userName = (EditText)view.findViewById(R.id.fragment_login_username);

    loginButton = (Button)view.findViewById(R.id.fragment_login_loginButton);
    registerButton.setOnClickListener(this);
    resetButton.setOnClickListener(this);
    loginButton.setOnClickListener(this);
    return view;
}


@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.register_button:{
            listener.buttonClicked(v);
            break;
        }
        case R.id.reset_button:{
            isPopUpOpen = true;
            resetPopUpWindow();
            break;
        }
        case R.id.fragment_login_loginButton:{
            final ProgressDialog progressDialog = new ProgressDialog(getActivity());
            progressDialog.setMessage("Logging In...");
            progressDialog.show();//FOLLOWING METHOD NOT WORKING...



            Backendless.UserService.login("email", password, new AsyncCallback<BackendlessUser>() {
                public void handleResponse(BackendlessUser user) {
                    Toast.makeText(getActivity(), "Logged In!", Toast.LENGTH_LONG).show();
                    SharedPreferences myPrefs = getActivity().getSharedPreferences(PREFS_LOGGED_IN, 0);
                    SharedPreferences.Editor editor = myPrefs.edit();
                    editor.putBoolean("isLoggedIn", true);
                    editor.commit();

                }

                public void handleFault(BackendlessFault fault) {
                    Toast.makeText(getActivity(), "No Name", Toast.LENGTH_LONG).show();
                }
            });


        }
        break;
    }
公共类LoginFragment扩展片段实现View.OnClickListener{
私人碎片交易;
专用按钮注册表按钮、重置按钮、登录按钮;
编辑文本用户名、密码;
私有布尔函数;
BackendlessUser userOne=新的BackendlessUser();
私有静态最终字符串PREFS_LOGGED_IN=“AreYouLoggedInFile”;
公共OnClickedListener;
公共登录接口loggedInListener;
静态接口OnClickedListener{
点击公共作废按钮(视图五);
}
静态接口登录接口{
public void userLoggedIn(布尔loggedIn);
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
this.listener=(OnClickedListener)活动;
this.loggedInListener=(LogInInterface)活动;
}
公共登录片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\状态\始终\隐藏);
isPopUpOpen=false;
如果(savedInstanceState!=null){
if(savedInstanceState.getBoolean(“isDialogOpen”)){
重置PopupWindow();
}
}
视图=充气机。充气(R.layout.fragment\u登录,容器,false);
registerButton=(按钮)view.findViewById(R.id.register_按钮);
resetButton=(按钮)view.findViewById(R.id.reset\u按钮);
password=(EditText)view.findViewById(R.id.fragment\u login\u password);
userName=(EditText)view.findViewById(R.id.fragment\u login\u userName);
loginButton=(按钮)view.findviewbyd(R.id.fragment\u login\u loginButton);
registerButton.setOnClickListener(这个);
resetButton.setOnClickListener(此);
setOnClickListener(这个);
返回视图;
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.注册按钮:{
监听器。按钮点击(v);
打破
}
案例R.id.reset_按钮:{
isPopUpOpen=true;
重置PopupWindow();
打破
}
案例R.id.fragment\u login\u login按钮:{
final ProgressDialog ProgressDialog=新建ProgressDialog(getActivity());
progressDialog.setMessage(“登录…”);
progressDialog.show();//以下方法不起作用。。。
backhandle.UserService.login(“电子邮件”、密码、新AsyncCallback(){
public void handleResponse(后端用户){
Toast.makeText(getActivity(),“登录!”,Toast.LENGTH_LONG.show();
SharedReferences myPrefs=getActivity().GetSharedReferences(已登录的PREFS,0);
SharedReferences.Editor=myPrefs.edit();
编辑器.putBoolean(“isLoggedIn”,true);
commit();
}
公共无效手柄故障(后端故障故障){
Toast.makeText(getActivity(),“No Name”,Toast.LENGTH_LONG.show();
}
});
}
打破
}
用于
backfundle
login()
方法需要一个
字符串作为第二个参数。您正在向它传递一个
EditText
。您必须从
EditText
中提取值。Do
password.getText().toString()
作为
login()
方法的第二个参数

而且,在实际发送值之前检查EditText中的空值是一种很好的做法。因此,请确保执行这些检查。

登录()
backfundle
方法需要一个
String
作为第二个参数。您正在向它传递一个
EditText
。您必须从
EditText
中提取值。Do
password.getText().toString()
作为
login()
方法的第二个参数

而且,在实际发送值之前检查EditText中的空值是一种很好的做法。因此,请确保进行这些检查。

因为这里提到了登录方法语法如下:

public void Backendless.UserService.login( String login, 
                                          String password, 
                                          AsyncCallback<BackendlessUser> callback );

public void Backendless.UserService.login( String login, 
                                          String password, 
                                          boolean stayLoggedIn, 
                                          AsyncCallback<BackendlessUser> callback );
为此:

Backendless.UserService.login("email", password.getText().toString(), new AsyncCallback<BackendlessUser>() {
                public void handleResponse(BackendlessUser user) {
                    Toast.makeText(getActivity(), "Logged In!", Toast.LENGTH_LONG).show();
                    SharedPreferences myPrefs = getActivity().getSharedPreferences(PREFS_LOGGED_IN, 0);
                    SharedPreferences.Editor editor = myPrefs.edit();
                    editor.putBoolean("isLoggedIn", true);
                    editor.commit();

                }

                public void handleFault(BackendlessFault fault) {
                    Toast.makeText(getActivity(), "No Name", Toast.LENGTH_LONG).show();
                }
            });
backfundle.UserService.login(“email”、password.getText().toString()、new AsyncCallback()){
public void handleResponse(后端用户){
Toast.makeText(getActivity(),“登录!”,Toast.LENGTH_LONG.show();
SharedReferences myPrefs=getActivity().GetSharedReferences(已登录的PREFS,0);
SharedReferences.Editor=myPrefs.edit();
编辑器.putBoolean(“isLoggedIn”,true);
commit();
}
公共无效手柄故障(后端故障故障){
Toast.makeText(getActivity(),“No Name”,Toast.LENGTH_LONG.show();
}
});
希望有帮助!!!

因为这里提到的登录方法语法如下:

public void Backendless.UserService.login( String login, 
                                          String password, 
                                          AsyncCallback<BackendlessUser> callback );

public void Backendless.UserService.login( String login, 
                                          String password, 
                                          boolean stayLoggedIn, 
                                          AsyncCallback<BackendlessUser> callback );
为此:

Backendless.UserService.login("email", password.getText().toString(), new AsyncCallback<BackendlessUser>() {
                public void handleResponse(BackendlessUser user) {
                    Toast.makeText(getActivity(), "Logged In!", Toast.LENGTH_LONG).show();
                    SharedPreferences myPrefs = getActivity().getSharedPreferences(PREFS_LOGGED_IN, 0);
                    SharedPreferences.Editor editor = myPrefs.edit();
                    editor.putBoolean("isLoggedIn", true);
                    editor.commit();

                }

                public void handleFault(BackendlessFault fault) {
                    Toast.makeText(getActivity(), "No Name", Toast.LENGTH_LONG).show();
                }
            });
backfundle.UserService.login(“email”、password.getText().toString()、new AsyncCallback()){
public void handleResponse(后端用户){
Toast.makeText(getActivity(),“登录!”,Toast.LENGTH_LONG.show();
SharedReferences myPrefs=getActivity().GetSharedReferences(已登录的PREFS,0);
SharedReferences.Editor=myPrefs.edit();
编辑器.putBoolean(“isLoggedIn”,true);
编辑公司