имя пользователя не принимается? - PullRequest
0 голосов
/ 12 июня 2018

В приведенном ниже коде поле Имя пользователя выдает ошибку, как показано на рисунке, не уверен, почему, пожалуйста, помогите ?? введите описание изображения здесь

На рисунке дано описание сообщения об ошибке.получено enter image description here

public class MainActivity extends AppCompatActivity {
EditText text;
ParseUser a;
EditText text2;
public void Onclick(View view)
{
    text=(EditText)findViewById(R.id.editText);
    text2=(EditText)findViewById(R.id.editText2);
    if(view.getId()==R.id.button)
    {
        ParseUser.logInInBackground(text.getText().toString(), text2.getText().toString(), new LogInCallback() {
            @Override
            public void done(ParseUser user, ParseException e) {
                if(user!=null)
                {
                    Toast.makeText(MainActivity.this, "Logged in", Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(MainActivity.this,"invalid username or password", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
    if(view.getId()==R.id.button2)
    {
     a=new ParseUser();
        a.signUpInBackground(new SignUpCallback() {
            @Override
            public void done(ParseException e) {
                if(e==null)
                {
                    a.setUsername(text.getText().toString());
                    Toast.makeText(MainActivity.this, "user signed in", Toast.LENGTH_SHORT).show();
                    a.setPassword(text2.getText().toString());
                }
                else
                {
                    Toast.makeText(MainActivity.this,"Already user", Toast.LENGTH_SHORT).show();
                    Toast.makeText(MainActivity.this,e.getMessage().substring(e.getMessage().indexOf(" ")), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
   // ParseAnalytics.trackAppOpenedInBackground(getIntent());
}

1 Ответ

0 голосов
/ 12 июня 2018

После нажатия кнопки 2 a.signUpInBackground () выполняет фоновую проверку, которая обнаруживает, что имя пользователя пусто.

Вы должны заполнить имя пользователя и пароль перед a.signUpinBackground (), а не во время обратного вызова (который будет запущен только после завершения регистрации), как описано в примере http://docs.parseplatform.org/android/guide/#users,, как показано ниже:

ParseUser user = new ParseUser();
user.setUsername("my name"); //in your case, text.getText().toString()
user.setPassword("my pass"); //in your case, text2.getText().toString()  
user.setEmail("email@example.com");

// other fields can be set just like with ParseObject
user.put("phone", "650-253-0000");

user.signUpInBackground(new SignUpCallback() {
public void done(ParseException e) {
   if (e == null) {
     // Hooray! Let them use the app now.
   } else {
     // Sign up didn't succeed. Look at the ParseException
     // to figure out what went wrong
   }
 }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...