2012-12-19 112 views
2

我必须在运行时构建自定义对话框。根据情况,对话框应显示一到四个查找条。我想获得这样的:与Android的自定义对话框

  • TITLE1 seekbar1
  • 标题2 seekbar2 ...

我是从Android的开发者指南网页所采取的FireMissilesDialogFragment示例代码进行实验。我已经修改了onCreateDialog()方法中添加以下代码:

// Use the Builder class for convenient dialog construction 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 

    Context  context = builder.getContext();//getActivity().getBaseContext(); 
    LinearLayout layout = new LinearLayout(context); 

    layout.setLayoutParams(new LinearLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 


    SeekBar   seek_bar = new SeekBar(context); 

    TextView  text = new TextView(context); 
    text.setClickable(false); 
    text.setText("slide me"); 

    layout.addView(text, new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, 
      LayoutParams.WRAP_CONTENT)); 

    layout.addView(seek_bar, new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, 
      LayoutParams.WRAP_CONTENT)); 


    builder.setView(layout); 

但不是在两个不同行显示文本“滑我”和搜索栏,只显示文本。我如何创建这样的自定义对话框?

回答

0

Android对话框可能包含的内容有所限制。它更容易创建活动,并告诉机器人将其显示为一个对话框:

  1. 创建一个新的活动,并添加一个布局文件,这些滑块

  2. 在清单中,使用此行

<activity android:theme="@android:style/Theme.Dialog">

要让活动出现一个对话框。这种方法不会出错。
另外,这样,如果你需要得到从对话框的结果,你可以使用startActivityForResult

0

你需要做一个布局先用搜索栏和文本视图。你可以使用布局充气器将它添加到你diloge盒。 试试....

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.yourLayoutId, (ViewGroup) findViewById(R.id.MyLayout)); 
AlertDialog.Builder builder = new AlertDialog.Builder(this) 
.setView(layout); 
AlertDialog alertDialog = builder.create(); 
alertDialog.show(); 
SeekBar sb = (SeekBar)layout.findViewById(R.id.yourSeekBar); 
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ 
     //Do something here with new value 
    } 
});