从parse.com获取用户数据

时间:2015-06-24 18:30:57

标签: android parse-platform

我被困在试图围绕解析信息的parse.com概念。当用户名在我的parse.com数据库中时,我的问题是尝试打开网页。例。用户在登录屏幕上输入“john”作为用户名和“gan”作为密码。如果找到用户名,我想打开一个网页,请说google.com。我认为我的概念是正确的,但我认为我的逻辑错了。有人可以帮忙吗?

public class Login extends MainActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(layout.activity_login);
  final   EditText username = (EditText) this.findViewById(id.userloginname);
    final EditText password = (EditText) this.findViewById(id.userpassword);


    TextView neighbourView = new TextView(this);

    Button button_test;
    button_test = (Button) this.findViewById(id.btnLogin);

    button_test.setOnClickListener(new View.OnClickListener() {


        public void onClick(View v) {

          final  String usersname =  username.getText().toString();
          final  String passwoord = password.getText().toString();


            //ParseQuery<ParseObject> query = ParseQuery.getQuery("Parking");
            ParseUser.logInInBackground(usersname, passwoord, new LogInCallback() {
                public void done(ParseUser User, com.parse.ParseException e) {

                    if (User != null) {

                                  // user name is in the database
                            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
                            startActivity(browserIntent);
                        }
                        else{
                            Toast.makeText(getApplicationContext(), "user name does not exists", Toast.LENGTH_LONG).show();

                        }

                }



            });
            // return false;
        }
    });
}

我的XML

     <!--  Username Label -->
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#372c24"
        android:text="@string/username"/>
    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:layout_marginBottom="20dip"
        android:singleLine="true"
        android:id="@+id/userloginname"
        android:inputType="text" />
    <!--  Password Label -->
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#372c24"
        android:text="@string/password"/>
    <EditText android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:singleLine="true"
        android:password="true"
        android:inputType="textPassword"
        android:id="@+id/userpassword" />
    <!-- Login button -->
    <Button android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="@string/loginButton"/>

2 个答案:

答案 0 :(得分:0)

您的代码应该可以使用,我认为是权限问题,或者您忘记复制这些jar。

要检查的一些事项:

build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    compile 'com.parse.bolts:bolts-android:1.+'
}

在AndroidManifest.xml中添加此权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

然后在onCreate()中你需要初始化解析

    Parse.enableLocalDatastore(this);
    Parse.initialize(this, XXXX,XXXX);

最好的方法是使用自定义Application类

public class MyApplication extends Application {
    public void onCreate() {
        super.onCreate();
        Parse.enableLocalDatastore(this);
        Parse.initialize(this, "XXXXXX", "XXXXXX");
    }
}

然后在AndroidManifest.xml中

<application
  android:name=".MyAplication"
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:theme="@style/AppTheme" >
  <--!activities, etc-->
 </application>

答案 1 :(得分:0)

如果它是新用户,您必须先登录,然后您可以使用您的代码登录,如果您已登录新记录,将添加到数据库,它会&#39; ll识别用户并登录。

        ParseUser user = new ParseUser();
    user.setUsername(username);
    user.setPassword(password);
    user.signUpInBackground(new SignUpCallback() {
        @Override
        public void done(ParseException e) {
            if( e != null){
 ParseUser.logInInBackground(usersname, passwoord, new LogInCallback() {
                public void done(ParseUser User, com.parse.ParseException e) {

                    if (User != null) {

                                  // user name is in the database
                            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
                            startActivity(browserIntent);
                        }
                        else{
                            Toast.makeText(getApplicationContext(), "user name does not exists", Toast.LENGTH_LONG).show();

                        }

                }



            });


}
        }
    });

希望这有帮助