Android,SeekBar在对话框中

我想在我的应用程序中使用与seekbar对话框。 但我真的不知道该怎么做,因为我缺乏android的经验。

所以,当你按下一个button时,会出现一个对话框,带有一个search栏,用户可以input一个值,然后按OK键。

我现在的代码是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(); 

我应该如何添加一个SeekBar

谢谢!

Solutions Collecting From Web of "Android,SeekBar在对话框中"

也许你可以想到创build一个自定义对话框; 它需要更多的工作,但它通常为我工作;)为您的对话框(比如your_dialog.xml)创build一个新的布局文件:

 <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> 

然后,在你的活动中:

 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); 

因此,您可以按如下方式对您的元素进行操作:

 Button yourDialogButton = (Button)layout.findViewById(R.id.your_dialog_button); SeekBar yourDialogSeekBar = (SeekBar)layout.findViewById(R.id.your_dialog_seekbar); // ... 

依此类推,设置button和seekbar的监听器。

编辑:searchonchangelistener应该如下:

 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); 

我希望这能帮到您。 试试这个代码…

 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(); 

这是关于如何把alertbar放在alertdialog的代码:检查这个链接 。

 public void ShowDialog(){ final AlertDialog.Builder popDialog = new AlertDialog.Builder(this); final SeekBar seek = new SeekBar(this); seek.setMax(255); seek.setKeyProgressIncrement(1); popDialog.setIcon(android.R.drawable.btn_star_big_on); popDialog.setTitle("Please Select Into Your Desired Brightness "); popDialog.setView(seek); seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ txtView.setText("Value of : " + progress); } 

快乐编码!

创build一个具有edittext的视图。 使用setView()方法来设置视图。

mytest.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/textview1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:hint="8+ characters" android:maxLines="1" android:maxLength="18" android:imeOptions="actionSend|flagNoEnterAction" /> </RelativeLayout> AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(entryView); 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();