【问题标题】:Parse.com: with parseUser, how can I save data in a column I created in parse from the class?Parse.com:使用 parseUser,我如何将数据保存在我在类的 parse 中创建的列中?
【发布时间】:2014-10-18 00:14:28
【问题描述】:

我将 Android Studio 用于我的应用程序,将 Parse 用于我的数据库...在我拥有的创建帐户页面上,它允许用户输入名字、姓氏、电子邮件、用户名和密码。

但我的代码使用的是 parseUser... 我不知道如何在数据库中设置名字和姓氏。 我知道 setUsername、setPassword、setEmail 是其中的一部分……但是如果您在 Parse 中创建一个列呢?你怎么能在你的课堂上添加这个?

这是我的代码的一部分,它看起来像什么......我的问题出在我的 else 语句中:

          // Force user to fill up the form
            if (usernametxt.equals("") && passwordtxt.equals("") && emailtxt.equals("")) {
                Toast.makeText(getApplicationContext(),
                        "Please fill in the username, password, and email fields.",
                        Toast.LENGTH_LONG).show();

            } else {
                // Save new user data into Parse.com Data Storage
                ParseUser user = new ParseUser();

                //somehow save first and last name 

                user.setEmail(emailtxt);
                user.setUsername(usernametxt);
                user.setPassword(passwordtxt);
                user.signUpInBackground(new SignUpCallback() {
                    public void done(ParseException e) {
                        if (e == null) {

【问题讨论】:

    标签: java android class android-studio parse-platform


    【解决方案1】:

    是的,Parse 确实提供了保存用户名、密码的方法,例如 setUsername(params)setPassword(params) 但如果您想向表中添加更多数据,您可以根据您的需要创建更多列,就像我在此代码 sn-p 中所做的那样。

    如果您已经在解析后端中创建了列,例如姓名、电话、地址、cityState、companyId,我就是这样做的。

    private void savetoParse() {
    
            ParseUser user = new ParseUser();
            user.setUsername(usernameEditText.getText().toString());
            user.setPassword(passEditText.getText().toString());
            user.put("name", nameEditText.getText().toString());
            user.setEmail(emailEditText.getText().toString());
            user.put("phone", phoneNoEditText.getText().toString());
            user.put("address", addressEditText.getText().toString());
            user.put("cityState", cityStateEditText.getText().toString());
            user.put("companyID", compSchoolIdEditText.getText().toString());
    
            user.signUpInBackground(new SignUpCallback() {
    
                @Override
                public void done(ParseException e) {
    
                    if (e != null) {
    
                        Toast.makeText(SignupActivityUpdate.this,
                                "Saving user failed.", Toast.LENGTH_SHORT).show();
                        Log.w(TAG,
                                "Error : " + e.getMessage() + ":::" + e.getCode());
    
                        if (e.getCode() == 202) {
    
                            Toast.makeText(
                                    SignupActivityUpdate.this,
                                    "Username already taken. \n Please choose another username.",
                                    Toast.LENGTH_LONG).show();
                            usernameEditText.setText("");
                            passEditText.setText("");
                            confirmPassEditText.setText("");
    
                        }
    
                    } else {
    
                        Toast.makeText(SignupActivityUpdate.this, "User Saved",
                                Toast.LENGTH_SHORT).show();
    
                        /*Do some things here if you want to.*/
    
                    }
    
                }
            });
    

    注意:第一个参数是列名,第二个是值。所以,它基本上就像一个键值对。

    这是解决问题..让我知道这是否有效..祝你好运..:)

    【讨论】:

    • 非常感谢!它有帮助,我跟着你如何做到这一点,我能够保存新列!
    • 太棒了!!我很高兴我能提供帮助.. :)
    • 嗨,我们可以将默认表(用户)更改为任何其他表吗?
    • 当然你可以......你总是可以创建自己的表名或解析中的任何其他实体。
    【解决方案2】:
    /**
         * user Registration here
         * save user registration value on server here
         */
        private void userRegistration()
        {
            progressDialog=new ProgressDialog(SignUpThirdPage.this);
            progressDialog.setMessage("Please Wait......");
            progressDialog.setCancelable(false);
            progressDialog.show();
    
            ParseUser user = new ParseUser();
    
    
            user.setUsername("Name");   
            user.setPassword(strPassword);
            user.setEmail(strEmailId);
            // surName column create on parse.com db you can check after run that code
            // like that u can add more column in signup table
             user.put("surName","Kumar");
    
            user.signUpInBackground(new SignUpCallback() {
                @Override
                public void done(com.parse.ParseException e) {
                    // TODO Auto-generated method stub
                    if (e == null) {
    
    
                        }
    
                    } else {
                        // Sign up didn't succeed. Look at the ParseException
                        // to figure out what went wrong
                        e.printStackTrace();
                        progressDialog.dismiss();
                        if(e.getMessage().contains("already taken")){
                            alertDialog("", "you've already sign up , lets login in ", SignUpThirdPage.this, false);    
                        }
                        else if(e.getMessage().contains("has already been taken")){
                            alertDialog("", "you've already sign up , lets login in ", SignUpThirdPage.this, false);    
                        }
                        else {
                            AppConstants.showAlertDialog("", e.getMessage(), SignUpThirdPage.this, false);
                        }
                    }
                }
            });
        }
    

    【讨论】:

    • @Rohitashvjain 我现在解析中的表“table1”如何从 android 保存该表中的数据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    相关资源
    最近更新 更多