2014-01-16 74 views
0

我創建了一個片段,有一些文字和圖像:如何在對話框中顯示片段?

public class ContentFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_content, container, false); 

     return view; 

    } 

} 

有什麼辦法讓它在一個對話框中顯示?

例如:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder.setTitle("Showing a fragment in a dialog"); 

// Load fragment as dialog content somehow 

AlertDialog alert = builder.create(); 

alert.show(); 

回答

1

每一個對話框有setView方法,可以以編程方式創建或膨脹,看到這個example
你也應該考慮使用DialogFragment

+0

我剛剛更新了示例的鏈接。 – NickF

+0

謝謝。我將ContentFragment更改爲擴展DialogFragment而不是Fragment,然後使用setView()在對話框中顯示片段。 – tpbapp

1

AlertDialog是不應該舉辦一個片段。

可以使用一種解決方法是更換對話UI,可以通過以下方式實現:

dialog.setContentView(R.layout.fragment_content) 

這隻會改變對話視圖,如果要綁定您的片段內的事件或數據控件,你需要做setContentView後

+0

因此,使用setContentView()不會像onCreateView()那樣觸發任何片段代碼? – tpbapp

+0

可悲的是它不會。它只會誇大觀點。 – Lowkey