Android代码不会更新用户帐户

时间:2014-04-23 00:03:49

标签: android parse-platform

我正在研究Android代码并尝试更新用户信息。我能够检索信息但无法更新。不确定我做错了什么。

在if-else语句中,它没有命中If语句,直接转到错误(else语句。

这是代码

package com.example.autrui;

import com.parse.GetCallback;
import com.parse.ParseACL;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
import com.parse.SaveCallback;
import com.parse.SendCallback;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class EditPP extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editpp);
    final Button confirmChangeEditPP = (Button) findViewById(R.id.bconfirmChangeEditPP);
    final EditText fullName = (EditText) findViewById(R.id.etFullName);
    final EditText email = (EditText) findViewById(R.id.etEmail);



    //final ParseUser currentUser = new ParseUser();
    final ParseUser currentUser = ParseUser.getCurrentUser();
    System.out.println(currentUser);
    String objectId = currentUser.getObjectId();
    System.out.println(objectId);
    String fName = currentUser.getString("fullName");
    fullName.setText(fName);
    email.setText(currentUser.getString("email"));

    ParseQuery<ParseObject> userQuery = ParseQuery.getQuery("User");
    userQuery.getInBackground((String)objectId, new GetCallback<ParseObject>(){
      public void done(final ParseObject object, ParseException e) {
        if (e == null) {
            confirmChangeEditPP.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    ParseACL acl = new ParseACL();
                    acl.setPublicReadAccess(true);
                    acl.setPublicWriteAccess(true);
                    currentUser.setACL(acl);
                    object.put("fullName", fullName.getText().toString());
                    object.put("email", email.getText().toString());
                    object.saveInBackground();

                }
            });

        } else {
          Log.e("error","error");
        }
      }
    });
}

@Override
public void onBackPressed() {
    finish();
    // Go to settings
    /*
     * if(MainActivity.s.isEmpty()) return; else { View v =
     * MainActivity.s.pop(); Class c = MainActivity.s2.pop(); Intent intent
     * = new Intent(v.getContext(), c); startActivityForResult(intent, 0); }
     */
}

private void showUserDetailsActivity() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

}

1 个答案:

答案 0 :(得分:0)

我得到了答案。错误是关于ACL,是的,我们不需要查询。我再次编写了整个代码并使其更简单。