如何解决如何使用Android在自定义警报对话框中使自定义按钮起作用
public class MainActivity extends AppCompatActivity
{
private TextView regis;
public Button bt_ok;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_ok=findViewById(R.id.bt_ok);
getSupportActionBar().hide();
SharedPreferences prefs = getSharedPreferences("prefs",MODE_PRIVATE);
boolean firstStart = prefs.getBoolean("firstStart",true);
if (firstStart)
{
showStartDialog();
}
}
public void showStartDialog()
{
LayoutInflater inflater = LayoutInflater.from(this);
View view =inflater.inflate(R.layout.activity_dialog,null);
final AlertDialog.Builder dialog= new AlertDialog.Builder(MainActivity.this,R.style.DialogCustomTheme);
final View customLayout = getLayoutInflater().inflate(R.layout.activity_dialog,null);
dialog.setView(customLayout).create();
dialog.setCancelable(false);
dialog.show();
SharedPreferences prefs = getSharedPreferences("prefs",MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.apply();
}
}
我无法使自定义按钮起作用,打开我的自定义对话框时,我的要求很简单,我只需单击按钮即可将其关闭,我不想使用内置的警报对话框按钮。请帮助我预先谢谢你。
解决方法
在对话框上声明您的按钮xml,然后在该按钮上设置setOnclickListener
public void showStartDialog()
{
final AlertDialog.Builder dialog= new AlertDialog.Builder(MainActivity.this,R.style.DialogCustomTheme);
final View customLayout = getLayoutInflater().inflate(R.layout.activity_dialog,null);
Button btn = customLayout.findViewById(R.id.your_btn_xml);
dialog.setView(customLayout).create();
dialog.setCancelable(false);
SharedPreferences prefs = getSharedPreferences("prefs",MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.apply();
AlertDialog alertDialog = dialog.create();
alertDialog.show();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do something when clicked
alertDialog.dismiss();
}});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。