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(); } }
I am unable to make the custom button work , my requirement is simple when my custom dialog box is opened i have to dismiss it by simply clicking on button i dont want to use in-built alert dialog box buttons.Please help me thankyou in advance.
Advertisement
Answer
Declare your button xml on the dialog then setOnclickListener on that button
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(); }}); }