Как отобразить диалоговое окно для другого занятия на основе того, что вы делали в предыдущем занятии - PullRequest
0 голосов
/ 07 августа 2011

Я хочу иметь страницу регистрации и страницу создания учетной записи. После заполнения вашей информации на странице создания учетной записи я хочу вернуться на страницу регистрации с диалоговым окном либо успешного создания учетной записи, либо повторного отправки кода.

На данный момент я проверяю ответ веб-сервера и в зависимости от состояния должен отображаться диалоговое окно, а затем закрывать действие по созданию учетной записи, показывая страницу регистрации в фоновом режиме, в то время как диалоговое окно всплывает и сообщает вам, что ваш учетная запись создана или код повторно.

Однако на данный момент все, что он делает, это закрывает мою деятельность, не показывая диалогов. Я предполагаю, что мне придется открыть диалоговое окно на странице регистрации, но я не знаю, как спросить, было ли оно «создано» или «повторно». Если бы вы могли дать мне несколько советов о том, как показать соответствующий диалог на основе того, что я сказал, я был бы очень признателен.

Спасибо

вот мой код примечание Вы нажимаете кнопку после завершения заполнения информации

public void btnCreate(View v) throws Exception {
    // if we get to here we can send the information to the webserver

    String response = makeRequest(email.getText().toString(), fName
            .getText().toString(), lName.getText().toString());
    if (response != null) {
        org.json.JSONObject obj = new org.json.JSONObject(response);
          //response is created make created dialog
        if ("Created".equals(obj.getString("status"))) {
            new AlertDialog.Builder(CreateAccount.this)
                    .setTitle("Account Creation Successful")
                    .setMessage(
                            "An activation code has been sent to you. Please check your SPAM folder if you do not receive your activation code email")
                    .setNeutralButton("OK", null).show();
         // response is resend and sends the resend dialog
        } else if ("Resend".equals(obj.getString("status"))) {
            new AlertDialog.Builder(CreateAccount.this)
                    .setTitle("Code Resent")
                    .setMessage(
                            "Your activation code has been resent to your email.\n\nIf you are not receiving your activation code, our email is being blocked. Please email us at 'help@iphone-tracker.net' and we will manually send you a code.")
                    .setNeutralButton("OK", null).show();
        }
    }
      //finishes this activity and shows the registration activity (the one before create account)
    finish();

}

Ответы [ 3 ]

1 голос
/ 07 августа 2011

Как вы упоминаете, вероятно, вы должны создать диалоговые окна в следующем упражнении. При запуске нового действия вы можете передать ему дополнительную информацию.

Так что-то вроде:

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
i.putExtra("login_successful", true); // Only true if they logged in.
startActivity(myIntent);

Затем в новом действии вы просто извлекаете дополнительную информацию, отправленную из предыдущего действия, путем получения пакета, который был получен при создании нового действия (onCreate (Bundle saveInstance)).

savedInstanceState = this.getIntent().getExtras();
boolean yes = savedInstanceState.getBoolean("login_successful");

Конечно, вы также можете поместить в связку строки и другие примитивные типы.

Кстати, вам не нужно «завершать» свою текущую активность, чтобы показать следующую активность - я думал, что если пользователь захочет выйти или войти в систему как другой пользователь? Когда вы вызываете метод finish для действия, он удаляется из стека действий и не может быть получен до тех пор, пока вы полностью не перезапустите приложение.

0 голосов
/ 07 августа 2011

Мне кажется, что вы захотите, чтобы ваша регистрация была ActivityForResult и возвращала результат. В зависимости от результата вызывающий Activity может отображать различную информацию (результат функции аналогичны намерению, поэтому в него также может быть помещена информация)

0 голосов
/ 07 августа 2011

В setNeutralButton вашего сборщика AlertDialog установите DialogInterface.onClickListener и выполните свою логику, которая запускает отдельные действия там.

...