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。现在开始工作了!