如何使用构建器将数据注入对话框?
我想在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();
}
}
答案 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一样。