2015-06-27 3 views
-1

У меня возникла проблема с созданием нового пользователя с parse.com .. Мой код кажется правильным, но по какой-то причине, когда я вхожу в нового пользователя, он не регистрируется. Может ли кто-нибудь помочь мне с Эта проблема?Создание нового пользователя в базе данных

final EditText newuser = (EditText) this.findViewById(R.id.newuser); 
    final EditText newuserpassword = (EditText) this.findViewById(R.id.newuserpassword); 
    final EditText EmailAddress = (EditText) this.findViewById(R.id.user_email); 



    TextView neighbourView = new TextView(this); 

    Button button_test2; 
    button_test2 = (Button) this.findViewById(R.id.button); 
    button_test2.setOnClickListener(new View.OnClickListener() 

    { 


     public void onClick(View s) { 

      final String newusersname = newuser.getText().toString(); 
      final String newpasswoord = newuserpassword.getText().toString(); 
      final String newusermail = EmailAddress.getText().toString(); 


      ParseUser user = new ParseUser(); 
      user.setUsername(String.valueOf(newusersname)); 
      user.setPassword(String.valueOf(newpasswoord)); 
      user.setPassword(String.valueOf(newusermail)); 



      user.signUpInBackground(new SignUpCallback() { 
       @Override 
       public void done(com.parse.ParseException e) { 
        if (e == null) { 
         Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
         startActivity(browserIntent); 
        } else { 
         // Sign up didn't succeed. Look at the ParseException 
         // to figure out what went wrong 
         Toast.makeText(getApplicationContext(), "choose a differnt username or password", Toast.LENGTH_LONG).show(); 

        } 
        //if e != null, something went wrong 
       } 
      }); 
     } 
    }); 

Мой XML является

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 

    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#372c24" 
     android:text="New User Name" 
     /> 
    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dip" 
     android:singleLine="true" 
     android:inputType="textPersonName" 
     android:id="@+id/newuser" /> 

    <!-- 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/newuserpassword" 
     android:layout_gravity="center_horizontal" /> 


    <!-- Email Label --> 
    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#372c24" 
     android:text="E-Mail"/> 
    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dip" 
     android:singleLine="true" 
     android:inputType="textEmailAddress" 
     android:id="@+id/user_email" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Done" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal" /> 

А вот мой метод ParseApplication

public class ParseApplication extends Application { 
@Override 
public void onCreate() { 
    super.onCreate(); 
    Parse.enableLocalDatastore(this); 
    Parse.initialize(this, "xxxxxx ", "xxxx"); 
    //...Rest of the Parse initializations. 
} 

Любая помощь будет принята с благодарностью.

+0

Вы получаете сообщение тост? если вы его получите, попробуйте распечатать сообщение об исключении. Log.i ("ошибка", e.getMessage()); под Toast.makeText (getApplicationContext(), «выберите другое имя пользователя или пароль», Toast.LENGTH_LONG) .show(); – 55597

+0

Я не получил сообщение об ошибке –

+0

Не могли бы вы добавить сообщения Log.i в несколько мест в вашем клике, чтобы узнать, вызван ли вызов onclick? – 55597

ответ

0

Возможно, вы не вышли из предыдущей сессии. Добавьте логику выхода и проверьте.

Заменить этот

final String newusersname = newuser.getText().toString(); 
      final String newpasswoord = newuserpassword.getText().toString(); 
      final String newusermail = EmailAddress.getText().toString(); 


      ParseUser user = new ParseUser(); 
      user.setUsername(String.valueOf(newusersname)); 
      user.setPassword(String.valueOf(newpasswoord)); 
      user.setPassword(String.valueOf(newusermail)); 

с этим

final String newusersname = newuser.getText().toString(); 
      final String newpasswoord = newuserpassword.getText().toString(); 
      final String newusermail = EmailAddress.getText().toString(); 

if(ParseUser.getCurrentUser()!=null) 
     { 
      ParseUser.getCurrentUser().logOut(); 
     } 

      ParseUser user = new ParseUser(); 
      user.setUsername(String.valueOf(newusersname)); 
      user.setPassword(String.valueOf(newpasswoord)); 
      user.setPassword(String.valueOf(newusermail)); 
+0

06-27 03: 06: 53.125 11544-11544/com.example.dam.loginsample I/error: недействительный токен сеанса –

+0

Спасибо, он работает –

0

попробуйте этот метод saveInBackground(), который сохранит пользователя.

 ParseUser user = new ParseUser(); 
     user.setUsername(String.valueOf(newusersname)); 
     user.setPassword(String.valueOf(newpasswoord)); 
     user.setPassword(String.valueOf(newusermail)); 

     user.saveInBackground(); 
+0

Eh, Это не сработало –

+0

Можно использовать Parse.initialize для инициализации ?? –

+0

передать два параметра parseId и parseSecret –

0

Я новичок в этом, но я думаю, что этот вопрос может быть, что вы пытаетесь присвоить 2 пароли,

для моего понимания его поле вы не можете продублировать и предоставляются по электронной почте имеет отдельное поле уже построено внутри объекта пользователя

 user.setUsername(String.valueOf(newusersname)); 
     user.setPassword(String.valueOf(newpasswoord)); 
     user.setEmail(String.valueOf(newusermail)); 
+0

Спасибо, но это не сработало. Хорошая точка, хотя –

Смежные вопросы