Alertdialog not_showing

Я новичок в разработке Android. попытался реализовать диалог Android в моем проекте, но он не отображается. В logcat нет ошибок.

Это XML-код для него:

<android.support.design.widget.FloatingActionButton
    android:id = "@+id/add_item"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:layout_marginBottom = "16dp"
    android:layout_marginEnd = "8dp"
    android:layout_marginStart = "8dp"
    android:layout_marginTop = "8dp"
    android:clickable = "true"
    app:layout_constraintBottom_toBottomOf = "parent"
    app:layout_constraintEnd_toEndOf = "parent"
    app:layout_constraintHorizontal_bias = "0.927"
    app:layout_constraintStart_toStartOf = "parent"
    app:layout_constraintTop_toTopOf = "parent"
    app:layout_constraintVertical_bias = "0.935"
    app:srcCompat = "@android:drawable/ic_input_add" />

Это та часть, где я реализовал alerttdialog:

FloatingActionButton add_button = findViewById(R.id.add_item);
    add_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Create item list");
            final EditText enter_item_list=new EditText(MainActivity.this);
            enter_item_list.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
            enter_item_list.setHint("Type a name");
            enter_item_list.setHintTextColor(Color.RED);
            builder.setView(enter_item_list);

            builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    String item_name = enter_item_list.getText().toString().trim();
                    add_item_to_list(item_name);

                }
            });
            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int which) {
                    dialogInterface.dismiss();
                    AlertDialog alertDialog=builder.create();
                    alertDialog.show();

                }
            });
            itemList_ref = Firestore_ref.collection("itemList").document(UserEmail).collection("user_item_list");
        }
    });
}

private void add_item_to_list(String item_name) {
    String item_id = itemList_ref.document().getId();
 InventoryModel inventoryModel = new InventoryModel(item_id,item_name ,UserName);
itemList_ref.document(item_id).set(inventoryModel).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        Log.d("TAG","Inventory list created");
    }
});
}

Это полный код:

import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputType;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.FieldValue;
import com.google.firebase.firestore.FirebaseFirestore;
import com.omniheart.elloslai.storage_checker.model.InventoryModel;



import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

private String UserEmail , UserName ;
private GoogleApiClient googleApiClient ;
private FirebaseAuth firebase_auth;
private FirebaseFirestore Firestore_ref;
private FirebaseAuth.AuthStateListener authStateListener;
private CollectionReference itemList_ref ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    GoogleSignInAccount googleSignInAccount = GoogleSignIn.getLastSignedInAccount(this);
    if (googleSignInAccount!=null){
        UserEmail=googleSignInAccount.getEmail();
        UserName = googleSignInAccount.getDisplayName();
        Toast.makeText(this,"Welcome" + UserName,Toast.LENGTH_LONG).show();
    }

     googleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Auth.GOOGLE_SIGN_IN_API)
            .build();

    firebase_auth=FirebaseAuth.getInstance();
    Firestore_ref=FirebaseFirestore.getInstance();
    authStateListener=new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser firebaseUser = firebase_auth.getCurrentUser();
            if (firebaseUser == null) {
                Intent intent = new Intent(MainActivity.this,LoginActivity.class);
                startActivity(intent);
                finish();
            }
        }
    };
    FloatingActionButton add_button = findViewById(R.id.add_item);
    add_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Create item list");
            final EditText enter_item_list=new EditText(MainActivity.this);
            enter_item_list.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
            enter_item_list.setHint("Type a name");
            enter_item_list.setHintTextColor(Color.RED);
            builder.setView(enter_item_list);

            builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    String item_name = enter_item_list.getText().toString().trim();
                    add_item_to_list(item_name);

                }
            });
            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int which) {
                    dialogInterface.dismiss();
                    AlertDialog alertDialog=builder.create();
                    alertDialog.show();

                }
            });
            itemList_ref = Firestore_ref.collection("itemList").document(UserEmail).collection("user_item_list");
        }
    });
}

private void add_item_to_list(String item_name) {
    String item_id = itemList_ref.document().getId();
 InventoryModel inventoryModel = new InventoryModel(item_id,item_name ,UserName);
itemList_ref.document(item_id).set(inventoryModel).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        Log.d("TAG","Inventory list created");
    }
});
}

@Override
protected void onStart() {
    super.onStart();
    googleApiClient.connect();
    firebase_auth.addAuthStateListener(authStateListener);
}

@Override
protected void onStop() {
    super.onStop();
    if (googleApiClient.isConnected()){
        googleApiClient.disconnect();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true ;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   switch (item.getItemId()){
       case R.id.sign_out_button:
       signOut() ;
       return true ;

       default:
                return super.onOptionsItemSelected(item); 
   }
}

private void signOut() {
    Map<String ,Object> map = new HashMap<>();
    map.put("tokenId", FieldValue.delete());
    Firestore_ref.collection("users").document(UserEmail).update(map).addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            firebase_auth.signOut();
            if (googleApiClient.isConnected()){
                Auth.GoogleSignInApi.signOut(googleApiClient);
            }
        }
    });
}


}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
124
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы забыли использовать alertDialog.show(); для отображения вашего AlertDialog

Проверьте свой код, вы поместили alertDialog.show(); внутри builder.setNegativeButton, поэтому ваш alertDialog не отображается

Измените свой код, как показано ниже

add_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Create item list");
            final EditText enter_item_list=new EditText(MainActivity.this);
            enter_item_list.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
            enter_item_list.setHint("Type a name");
            enter_item_list.setHintTextColor(Color.RED);
            builder.setView(enter_item_list);

            builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    String item_name = enter_item_list.getText().toString().trim();
                    add_item_to_list(item_name);

                }
            });
            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int which) {
                    dialogInterface.dismiss();



                }
            });

            AlertDialog alertDialog=builder.create();
            alertDialog.show();
            itemList_ref = Firestore_ref.collection("itemList").document(UserEmail).collection("user_item_list");
        }
    });

Спасибо за ваш ответ :)

cklai 15.03.2018 13:10

@EllosLai рад помочь тебе, мой друг

AskNilesh 15.03.2018 13:10

Объявить переменную глобально

AlertDialog alertDialog ;

добавьте это после нажатия отрицательной кнопки

alertDialog = builder.create();
        alertDialog.show();

Добро пожаловать и надеюсь, что поможет вам в будущих проблемах

matin sayyad 15.03.2018 13:13

Рад помочь. Подумайте также о голосовании в интересах людей, которые сталкиваются с этим вопросом.

matin sayyad 19.03.2018 12:05

Другие вопросы по теме