Java 不兼容类型-Android,Parse.com
我正试图找到一种方法,用我的电子邮件或用户名登录到我的解析帐户,但我遇到了一个障碍 这是密码Java 不兼容类型-Android,Parse.com,java,android,parse-platform,Java,Android,Parse Platform,我正试图找到一种方法,用我的电子邮件或用户名登录到我的解析帐户,但我遇到了一个障碍 这是密码 if (username_email.indexOf('@') != -1) { ParseQuery<ParseUser> query = ParseUser.getQuery(); query.whereEqualTo("email", username_email);
if (username_email.indexOf('@') != -1) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", username_email);
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (object == null) {
Log.d("score", "The getFirst request failed.");
} else {
String actualUsername = object.get("username");//HERE!!!!!!!!!
ParseUser.logInInBackground(actualUsername, password, new LogInCallback() {
public void done(ParseUser user, ParseException e) {
if (user != null) {
// Hooray! The user is logged in.
Intent intent = new Intent(getBaseContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
} else {
TextView error = (TextView) findViewById(R.id.error);
error.setVisibility(View.VISIBLE);
error.setText(getString(R.string.error_sign_in));
Log.d("error", "email or password invalid");
}
}
});
}}
});
}
if(用户名\u email.indexOf('@')!=-1){
ParseQuery=ParseUser.getQuery();
查询。whereEqualTo(“电子邮件”,用户名\电子邮件);
getFirstInBackground(新的GetCallback(){
公共无效完成(ParseObject对象,parsee异常){
if(object==null){
Log.d(“score”,“getFirst请求失败”);
}否则{
String actualUsername=object.get(“用户名”);//此处!!!!!!!!!
ParseUser.logInInBackground(实际用户名、密码、新LogInCallback(){
公共无效完成(ParseUser用户,parsee异常){
如果(用户!=null){
//万岁!用户已登录。
Intent Intent=new Intent(getBaseContext(),MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_TASK);
星触觉(意向);
完成();
}否则{
TextView错误=(TextView)findViewById(R.id.error);
错误。设置可见性(View.VISIBLE);
error.setText(getString(R.string.error\u sign\u in));
日志d(“错误”、“电子邮件或密码无效”);
}
}
});
}}
});
}
字符串actualUsername=object.get(“用户名”);
显示为In兼容类型
我怎样才能解决这个问题?
谢谢。查看解析文档,有
ParseObject::getString(字符串键)
方法:
我打赌你应该使用它:
String actualUsername = object.getString("username");
或者做一个这样的演员:
String actualUsername = (String) object.get("username");
应用代码时,我忘记将
ParseObject
更改为ParseUser
!现在运行良好
更新代码:
if (username_email.indexOf('@') != -1) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("email", username_email);
query.getFirstInBackground(new GetCallback<ParseUser>() {
public void done(ParseUser object, ParseException e) {
if (object == null) {
Log.d("score", "The getFirst request failed.");
} else {
String actualUsername = (String) object.get("username");
ParseUser.logInInBackground(actualUsername, password, new LogInCallback() {
public void done(ParseUser user, ParseException e) {
if (user != null) {
// Hooray! The user is logged in.
Intent intent = new Intent(getBaseContext(), MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
} else {
TextView error = (TextView) findViewById(R.id.error);
error.setVisibility(View.VISIBLE);
error.setText(getString(R.string.error_sign_in));
Log.d("error", "email or password invalid");
}
}
});
}}
});
}
if(用户名\u email.indexOf('@')!=-1){
ParseQuery=ParseUser.getQuery();
查询。whereEqualTo(“电子邮件”,用户名\电子邮件);
getFirstInBackground(新的GetCallback(){
public void done(ParseUser对象,parsee异常){
if(object==null){
Log.d(“score”,“getFirst请求失败”);
}否则{
String actualUsername=(String)object.get(“用户名”);
ParseUser.logInInBackground(实际用户名、密码、新LogInCallback(){
公共无效完成(ParseUser用户,parsee异常){
如果(用户!=null){
//万岁!用户已登录。
Intent Intent=new Intent(getBaseContext(),MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_TASK);
星触觉(意向);
完成();
}否则{
TextView错误=(TextView)findViewById(R.id.error);
错误。设置可见性(View.VISIBLE);
error.setText(getString(R.string.error\u sign\u in));
日志d(“错误”、“电子邮件或密码无效”);
}
}
});
}}
});
}
我对解析一无所知,但是如果object.get(“用户名”)
返回一个对象
你应该像这样将它转换成String
字符串:String actualsername=(String)object.get(“用户名”)代码>@GSala使用代码时,我忘记将ParseObject更改为ParseUser。现在开始工作了!不管怎样,谢谢,不,还是不行。现在它返回“Parsequery不能应用于(匿名com.parse.GetCallback)@pelotasplus,但在不同的位置,对吗?我要说的是,去阅读官方文档吧,那里有代码示例。愚蠢的我,当我使用代码时,我忘了将ParseObject更改为ParseUser。现在开始工作了!