Android:如何将数据放入对话框?

时间:2013-01-07 19:03:32

标签: android dialog

如何使用构建器将数据注入对话框?

我想在R.layout.history上使用一个适配器(在类的第3行设置为视图)。但似乎我无法在FireMissiles类中完成它。

如何在该视图上使用适配器用数据填充它?

public class FireMissilesDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

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

        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.history, null));


        builder.setTitle("History");

        return builder.create();
    }
}

3 个答案:

答案 0 :(得分:0)

  

如何在该视图上使用适配器用数据填充它?

您可以使用AlertDialog.Builder类并调用setItems()setMultipleChoiceItems()来传递数据数组,并让Dialog为您填充ListView。

或者您可以像平常一样创建自己的ListView(或Spinner等),并将此布局传递给任何Dialog的setContentView()方法。 (您不一定需要使用AlertDialog.Builder。)

答案 1 :(得分:0)

我希望layout.history的类型为ListView或AdapterView。 这就是你如何做到的:

ListView lview =(ListView)inflater.inflate(R.layout.history,null);

lview.setAdapter(适配器); //将适配器作为FireMissilesDialogFragment

的构造函数传递

答案 2 :(得分:0)

而不是这一行:

builder.setView(inflater.inflate(R.layout.history, null));

同时创建和设置视图,将它们拆分为:

View v = infalter.inflate(R.layout.history, null));
// ... Some code here that sets up the view with your data.
builder.setView(v);

您希望v与R.layout.history的根布局具有相同的类型。您可以使用v.findViewById()获取它的子项,就像动态创建/引用的ViewGroup一样。