2012-12-19 152 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 
    } 
});