【发布时间】:2016-09-13 14:09:51
【问题描述】:
我有一个运行良好的对话框。但是,我想更改对话框的文本大小和样式。有没有不创建自定义对话框的快速方法?我尝试应用一个主题来做到这一点,但它只更改标题文本,而不是文本很大且对话框大小太大的单个元素。谢谢。
AlertDialog.Builder builderSingle = new AlertDialog.Builder(getActivity());
builderSingle.setTitle("Select Item");
final ArrayAdapter<String> arrayAdapter = listAllItems(getActivity());
builderSingle.setNegativeButton(
"cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderSingle.setAdapter(
arrayAdapter,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String strName = arrayAdapter.getItem(which);
}
});
builderSingle.show();
【问题讨论】:
-
您正在创建
Adapter,这意味着您可以指定所需的任何项目布局。 -
如何使用简单的文本创建该布局并引用它(以及单个行)?
-
在
res/layout/中创建一个文件 - 例如,dialog_list_item.xml- 这只是一个TextView,可以根据需要设置样式。然后将R.layout.dialog_list_item作为ArrayAdapter构造函数调用中的第二个参数传递。 -
所以我需要创建一个自定义适配器?我尝试了 final ArrayAdapter
arrayAdapter = new ArrayAdapter (getActivity(), android.R.layout.select_dialog_singlechoice);,但是你如何将我的列表 listAllItems 传递给 arrayadapter? -
您的
listAllItems()方法返回一个ArrayAdapter,因此必须在该方法中实例化一个。那就是您传递R.layout而不是android.R.layout的地方;无论您在哪里实例化ArrayAdapter,而不是在您调用listAllItems(getActivity())的地方。
标签: android dialog android-dialog customdialog