我想在我的应用程序中使用带有搜索条的对话框。 但我真的不知道怎么做,因为我缺乏android的经验。
因此,当您按下按钮时:应该出现一个对话框,其中有一个搜索栏,用户可以输入一个值然后按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
?
谢谢!
答案 0 :(得分:20)
也许你可以想到创建一个自定义对话框;它需要更多的工作,但它通常适合我;) 为对话框创建一个新的布局文件(例如,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>
然后,在您的活动中:
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);
// ...
依此类推,为按钮和搜索栏设置监听器。
编辑: seekbar onchangelistener应该如下:
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);
答案 1 :(得分:6)
我希望这会对你有所帮助。 试试这个代码...
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();
答案 2 :(得分:1)
答案 3 :(得分:1)
这是关于如何将seekbar放入alertdialog的代码: 检查此link。
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);
}
快乐的编码!
答案 4 :(得分:-1)
创建一个包含edittext的视图。使用AlertBuilder的setView()
方法来设置视图。
<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();