这是我的代码,我不知道如何转换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;
}
});
}
答案 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();
}
}