Android Studio 弹出框不显示问题解决:代码分析与修复
Androidstudio这个代码:\npublic class StartLogin extends AppCompatActivity {\n\n private EditText text1,text2;\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.start_login);\nAlertDialog.Builder startBuilder = new AlertDialog.Builder(StartLogin.this);\n startBuilder.setPositiveButton("登录", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n LayoutInflater inflater= LayoutInflater.from(StartLogin.this);\n final View view=inflater.inflate(R.layout.login_dialog,null);\n AlertDialog.Builder builder=new AlertDialog.Builder(StartLogin.this);\n builder.setIcon(R.drawable.logo);\n builder.setTitle("用户登录");\n builder.setView(view);\n builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n }\n });\n builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n finish();\n }\n });\n AlertDialog loginDialog = builder.create();\n loginDialog.show();\n startBuilder.show();\n }\n });\n }\n}\n为啥不出现弹出框内容:根据代码,弹出框没有显示的原因是因为没有调用show()方法来显示弹出框。在代码中,只调用了startBuilder.show()来显示弹出框,但是startBuilder是用来创建AlertDialog的,而不是显示弹出框的。\n\n要显示弹出框,应该在创建loginDialog后调用loginDialog.show()方法来显示弹出框。修改代码如下:\n\njava\npublic class StartLogin extends AppCompatActivity {\n\n private EditText text1, text2;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.start_login);\n\n AlertDialog.Builder startBuilder = new AlertDialog.Builder(StartLogin.this);\n startBuilder.setPositiveButton("登录", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n LayoutInflater inflater = LayoutInflater.from(StartLogin.this);\n final View view = inflater.inflate(R.layout.login_dialog, null);\n AlertDialog.Builder builder = new AlertDialog.Builder(StartLogin.this);\n builder.setIcon(R.drawable.logo);\n builder.setTitle("用户登录");\n builder.setView(view);\n builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n }\n });\n builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {\n @Override\n public void onClick(DialogInterface dialogInterface, int i) {\n finish();\n }\n });\n AlertDialog loginDialog = builder.create();\n loginDialog.show();\n }\n });\n\n startBuilder.show();\n }\n}\n\n\n修改后的代码中,在点击"登录"按钮时,会创建一个loginDialog并调用loginDialog.show()来显示弹出框。然后通过startBuilder.show()来显示startBuilder创建的弹出框。
原文地址: https://www.cveoy.top/t/topic/pKXT 著作权归作者所有。请勿转载和采集!