2015-07-21 55 views
2

我是Android和Parse的新手。有人可以帮我解决这个问题。您必须在实例化之前注册ParseObject子类 - 错误修复?

我得到这个错误 - '你必须在实例化之前注册ParseObject子类。'只要我点击我的用户创建提交按钮。

下面是创建一个新用户

package course.examples.gosportsathletetracker; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.SumPathEffect; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import com.parse.Parse; 
import com.parse.ParseUser; 
import com.parse.SignUpCallback; 

import java.text.ParseException; 

public class Create_New_Account extends Activity { 

    public Create_New_Account(){ 

    } 

    protected Button Submit; 
    protected EditText NameField; 
    protected EditText DOBField; 
    protected EditText EmailField; 
    protected EditText PasswordField; 
    protected EditText Sport; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_create__new__account); 

     NameField = (EditText) findViewById(R.id.Enter_Name); 
     DOBField = (EditText) findViewById(R.id.Enter_DOB); 
     EmailField = (EditText) findViewById(R.id.Enter_New_Email); 
     PasswordField = (EditText) findViewById(R.id.Enter_New_Password); 
     Sport = (EditText) findViewById(R.id.Enter_Sport); 
     Submit = (Button) findViewById(R.id.Submit); 

     Submit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       String name = NameField.getText().toString(); 
       String dob = DOBField.getText().toString(); 
       String email = EmailField.getText().toString(); 
       String password = PasswordField.getText().toString(); 
       String sport = Sport.getText().toString(); 

       ParseUser user = new ParseUser(); 
       user.put("athletename", name); 
       user.put("dateofbirth", dob); 
       user.setEmail(email); 
       user.setPassword(password); 
       user.put("sport", sport); 

       user.signUpInBackground(new SignUpCallback(){ 
        @Override 
        public void done(com.parse.ParseException e) { 
         { 
          if (e == null) { 
           Toast.makeText(Create_New_Account.this, "Sign-Up Successful!", Toast.LENGTH_SHORT).show(); 
           Intent intent = new Intent(Create_New_Account.this, Main_Menu.class); 
           startActivity(intent); 
          } else { 
           Toast.makeText(Create_New_Account.this, "Sign-Up Failed, please try again", Toast.LENGTH_SHORT).show(); 
          } 
         } 
        } 
       }); 
      } 
     }); 
    } 
    } 

类,这是其他类

package course.examples.gosportsathletetracker; 

import android.app.Activity; 
import android.app.Application; 

import com.parse.Parse; 
import com.parse.ParseACL; 
import com.parse.ParseUser; 

public class ParseWorkshopApplication extends Application { 
    @Override 
    public void onCreate(){ 
     super.onCreate(); 

     Parse.enableLocalDatastore(this); 
     Parse.initialize(this, "6yj7dATJU23N6okEKtJg94pXT5N55TwjhwSZRhnK", "CDDUf31ACn4lMXLxY0R2rByZ3zV9f2o2FT7YDO3x"); 

     ParseACL defaultACL = new ParseACL(); 

     defaultACL.setPublicReadAccess(true); 
     ParseACL.setDefaultACL(defaultACL, true); 
    } 
} 

,这里是我的清单

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="course.examples.gosportsathletetracker" > 

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/applicationicon" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".Launch_Screen" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".Login_Screen" 
      android:label="@string/title_activity_login__screen" > 
     </activity> 
     <activity 
      android:name=".Create_New_Account" 
      android:label="@string/title_activity_create__new__account" > 
     </activity> 
     <activity 
      android:name=".Main_Menu" 
      android:label="@string/title_activity_main__menu" > 
     </activity> 
     <activity 
      android:name=".Drink_Food_Intake_Menu" 
      android:label="@string/title_activity_drink__food__intake__menu" > 
     </activity> 
     <activity 
      android:name=".Food_Menu" 
      android:label="@string/title_activity_food__menu" > 
     </activity> 
     <activity 
      android:name=".Breakfast_Menu" 
      android:label="@string/title_activity_breakfast__menu" > 
     </activity> 
     <activity 
      android:name=".Lunch_Menu" 
      android:label="@string/title_activity_lunch__menu" > 
     </activity> 
     <activity 
      android:name=".Dinner_Menu" 
      android:label="@string/title_activity_dinner__menu" > 
     </activity> 
     <activity 
      android:name=".Drink_Menu" 
      android:label="@string/title_activity_drink__menu" > 
     </activity> 
     <activity 
      android:name=".Competition_Performance" 
      android:label="@string/title_activity_competition__performance" > 
     </activity> 
     <activity 
      android:name=".Supplement_Intake" 
      android:label="@string/title_activity_supplement__intake" > 
     </activity> 
    </application> 

</manifest> 

请你帮助我。 感谢

+0

http://stackoverflow.com/questions/27658383/parseexception-you-must-register-this-parseobject-subclass-before-instantiatin –

+0

菲利普,我已经看过那个,不能理解它。 如果有人能告诉我关于我的代码的具体解决方案,这将是有益的。 谢谢 –

回答

0

广场

Parse.initialize(this, applicationId, clientKey); 
onCreate()方法

相关问题