Alertdialog not_showing

我是android开发的新手。 我试图在我的项目中实现android对话框,但它没有显示。在logcat中没有错误。

这是它的XML代码:

 

这是我实现alertdialog的部分:

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

你忘了使用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"); } }); 

全局声明变量

 AlertDialog alertDialog ; 

点击否定按钮后添加此项

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