如何将Func1修改为RxJava 2.0中的函数Android

时间:2017-04-21 16:34:57

标签: android function rx-java2

这是我的代码,我不知道如何转换Funciont而不是Func1 请帮我!!! 谢谢!

问题出在: - > .map(new Func1,Integer>(){

我无法解决这个问题,这是解决方案吗?我发现2.0中有什么不同 但我没有解决问题。

import java.util.ArrayList;
import java.util.List;
//import io.reactivex.Observable;
//import io.reactivex.functions.Function;
import io.socket.client.Socket;
//import org.reactivestreams.Subscription;
//import io.reactivex.schedulers.Schedulers;
import rx.Observable;
import rx.Subscription;
import rx.functions.Func1;
import rx.schedulers.Schedulers;

public class LiveAccountServices {

    private static LiveAccountServices mLiveAccountServices;

    public static LiveAccountServices getInstance(){

        if(mLiveAccountServices == null){
            mLiveAccountServices = new LiveAccountServices();
        }
        return  mLiveAccountServices;
    }`enter code here`

    public Subscription sendRegistrationInfo(EditText userNameEt, EditText userEmailEt,
                                             EditText userPasswordEt, Socket socket){

        List<String> userDetails = new ArrayList<>();
        userDetails.add(userNameEt.getText().toString());
        userDetails.add(userEmailEt.getText().toString());
        userDetails.add(userPasswordEt.getText().toString());

        Observable userDetailsObservable = Observable.just(userDetails);

        return userDetailsObservable
                .subscribeOn(Schedulers.io())
                .map(new Func1<List<String>, Integer>(){
                    @Override
                    public Integer call (List<String> strings){
                        return  null;
                    }
                });

}

1 个答案:

答案 0 :(得分:0)

我想使用这个导入而不是rx.Observable和其他rx.somethings现在代码已经完成......

//import io.reactivex.Observable;
//import io.reactivex.functions.Function;
//import org.reactivestreams.Subscription;
//import io.reactivex.schedulers.Schedulers;
//import io.reactivex.android.schedulers.AndroidSchedulers;
public class LiveAccountServices {

    private static LiveAccountServices mLiveAccountServices;

    private final int USER_ERROR_EMPTY_PASSWORD =1;
    private final int USER_ERROR_EMPTY_EMAIL=2;
    private final int USER_ERROR_EMPTY_USERNAME =3;
    private final int USER_ERROR_PASSWORD_SHORT =4;
    private final int USER_ERROR_EMAIL_BAD_FORMAT =5;

    private final int SERVER_SUCCESS =6;
    private final int SERVER_FAILURE =7;


    public static LiveAccountServices getInstance(){

        if(mLiveAccountServices == null){
            mLiveAccountServices = new LiveAccountServices();
        }
        return  mLiveAccountServices;
    }



    public Subscription sendRegistrationInfo(final EditText userNameEt, final EditText userEmailEt,
                                             final EditText userPasswordEt, final Socket socket) {

        List<String> userDetails = new ArrayList<>();
        userDetails.add(userNameEt.getText().toString());
        userDetails.add(userEmailEt.getText().toString());
        userDetails.add(userPasswordEt.getText().toString());

        Observable<List<String>> userDetailsObservable = Observable.just(userDetails);

        return userDetailsObservable
                .subscribeOn(Schedulers.io())
                .map(new Func1<List<String>, Integer>() {
                    @Override
                    public Integer call(List<String> strings) {
                        String userName = strings.get(0);
                        String userEmail = strings.get(1);
                        String userPassword = strings.get(2);

                        if (userName.isEmpty()) {
                            return USER_ERROR_EMPTY_USERNAME;
                        } else if (userEmail.isEmpty()) {
                            return USER_ERROR_EMPTY_EMAIL;
                        } else if (userPassword.isEmpty()) {
                            return USER_ERROR_EMPTY_PASSWORD;
                        } else if (userPassword.length() < 6) {
                            return USER_ERROR_PASSWORD_SHORT;
                        } else if (!isEmailValid(userEmail)){
                            return USER_ERROR_EMAIL_BAD_FORMAT;
                        } else{
                            JSONObject sendData =new JSONObject();
                            try {
                                sendData.put("email",userEmail);
                                sendData.put("userName",userName);
                                sendData.put("password", userPassword);
                                socket.emit("userData", sendData);
                                return SERVER_SUCCESS;
                            } catch (JSONException e){
                                Log.i(LiveAccountServices.class.getSimpleName(),e.getMessage());
                                return SERVER_FAILURE;
                            }
                        }
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Integer>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Integer integer) {
                        if(integer.equals(USER_ERROR_EMPTY_EMAIL)){
                            userEmailEt.setError("Email Address Can't Be Empty");
                        } else if (integer.equals(USER_ERROR_EMAIL_BAD_FORMAT)){
                            userEmailEt.setError("Please check your email format");
                        } else if (integer.equals(USER_ERROR_EMPTY_PASSWORD)){
                            userPasswordEt.setError("Password Can't Be Blank");
                        } else if (integer.equals(USER_ERROR_EMPTY_PASSWORD)){
                            userPasswordEt.setError("Password Must Be At Least 6 Characters Long");
                        } else if (integer.equals(USER_ERROR_EMPTY_USERNAME)){
                            userNameEt.setError("Username Can't Be Empty");
                        }

                    }
                });

    }

    private boolean isEmailValid(CharSequence email){
        return Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }

}