I would like to use a dialog with a seekbar in my application. But I don't really know how to do it because I lack experience with android.
So, when you press a button: a dialog should come up, with a seekbar and the user is able to enter a value and then press OK-button.
The code I have at the moment is the default code by developer.android:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyActivity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
How should I do to add a SeekBar
?
Thanks!
Maybe you could think of create a custom dialog; it requires more work but it usually works for me ;) Create a new layout file for your dialog (say, your_dialog.xml):
<RelativeLayout
android:id="@+id/your_dialog_root_element"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<SeekBar
android:id="@+id/your_dialog_seekbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</SeekBar>
<Button
android:id="@+id/your_dialog_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</Button>
Then, in your activity:
Dialog yourDialog = new Dialog(this);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.your_dialog, (ViewGroup)findViewById(R.id.your_dialog_root_element));
yourDialog.setContentView(layout);
Thus, you can operate on your element as follows:
Button yourDialogButton = (Button)layout.findViewById(R.id.your_dialog_button);
SeekBar yourDialogSeekBar = (SeekBar)layout.findViewById(R.id.your_dialog_seekbar);
// ...
and so on, to set listeners for button and seekbar.
EDIT: The seekbar onchangelistener should be as follows:
OnSeekBarChangeListener yourSeekBarListener = new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//add code here
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//add code here
}
@Override
public void onProgressChanged(SeekBar seekBark, int progress, boolean fromUser) {
//add code here
}
};
yourDialogSeekBar.setOnSeekBarChangeListener(yourSeekBarListener);