Android, SeekBar in dialog
I hope this will help you. Try this Code...
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Alert Box");
alert.setMessage("Edit Text");
LinearLayout linear=new LinearLayout(this);
linear.setOrientation(1);
TextView text=new TextView(this);
text.setText("Hello Android");
text.setPadding(10, 10, 10, 10);
SeekBar seek=new SeekBar(this);
linear.addView(seek);
linear.addView(text);
alert.setView(linear);
alert.setPositiveButton("Ok",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id)
{
Toast.makeText(getApplicationContext(), "OK Pressed",Toast.LENGTH_LONG).show();
finish();
}
});
alert.setNegativeButton("Cancel",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id)
{
Toast.makeText(getApplicationContext(), "Cancel Pressed",Toast.LENGTH_LONG).show();
finish();
}
});
alert.show();
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);