Implementar un Snackbar dentro de un Asynctask

Tengo un Asynctask que basicamente realiza la tarea de Login y cuando las credenciales sean correctas y pase la siguiente Activity mustre un mensaje de tipo Snackbar les comparto el método donde creo que debe ir ...

 protected void onPostExecute(String result) {

        // este método se ejecutará en el subproceso de la interfaz de usuario
        pdLoading.dismiss();

        if(result.equalsIgnoreCase("true"))
        {
            // si sale bien el proceso y se legea correctamente pasa a la activity menuexpositor y finaliza login expositor
            // para que no pueda volver atras. sino que volvera el menu princial
            final String email = etEmail.getText().toString();

            Toast.makeText(getApplicationContext(),"Bienvenido/a: "+email,Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(formularioExpositor.this,MenuExpositor.class);
            startActivity(intent);
            formularioExpositor.this.finish();

        }else if (result.equalsIgnoreCase("false")){

            final AlertDialog.Builder alertaDeError = new AlertDialog.Builder(formularioExpositor.this);
            alertaDeError.setTitle("Error");
            alertaDeError.setMessage("Credenciales incorrectas.");
            alertaDeError.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            });
            alertaDeError.create();
            alertaDeError.show();

        } else if (result.equalsIgnoreCase("exception") || result.equalsIgnoreCase("unsuccessful")) {


            final AlertDialog.Builder alertaDeError2 = new AlertDialog.Builder(formularioExpositor.this);
            alertaDeError2.setTitle("Error");
            alertaDeError2.setMessage("Ha ocurrido un error inesperado. Intente nuevamente. Verifique su conexión a Internet");
            alertaDeError2.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            });
            alertaDeError2.create();
            alertaDeError2.show();


        }
    }

Como ven estoy usando un Toast para mostrar el mensaje. Alguna sugerencia ?

1
задан 26.12.2016, 20:07
0 ответов

Сначала ты должен создавать в твоем layout

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"       
    android:layout_height="match_parent"       
    android:layout_alignParentBottom="true"       
    android:layout_centerHorizontal="true"       
    android:id="@+id/snackbarExample">
</android.support.design.widget.CoordinatorLayout>

В тебе Activity создай следующую переменную

View coordinatorLayoutView;

В методе onCreate тебя Activity инициализируй переменную:

coordinatorLayoutView = findViewById(R.id.snackbarExample);

И потом создавать в твоем методе onPost

Snackbar snackbar = Snackbar.make(coordinatorLayoutView, "Bienvenido/a: "+email, Snackbar.LENGTH_LONG);
snackbar.show();
3
ответ дан 03.12.2019, 17:59
  • 1
    уже habí в попробованный это и меня бросает ошибка в (getApplicationContext (), " Желанный / желанная: " +email, Snackbar. LENGTH_LONG) он говорит, что он не может решать метод... –  26.12.2016, 20:13
  • 2
    @FelixBeeb обновите мой ответ, строитель SnackBar ждет как первый параметр View. –  26.12.2016, 20:34
  • 3
    Спасибо снова! –  26.12.2016, 20:59

Теги

Похожие вопросы