Android 使用复杂字符串数组资源设置AlertDialog

Android 使用复杂字符串数组资源设置AlertDialog,android,android-alertdialog,arrays,Android,Android Alertdialog,Arrays,我有一个简单的警报对话框,如下所示,使用一个简单的字符串数组(a)。我想用更复杂的字符串数组(b)替换(a),但是当对话框试图解析视图时,我得到了一个空指针异常 这是可能的还是我做错了什么 (a) AlertDialog代码: final AlertDialog.Builder dialog=new AlertDialog.Builder(new ContextThemeWrapper(ctx,R.style.mytheme)); 对话框。设置标题(标题); 对话框.setIcon(R.draw

我有一个简单的警报对话框,如下所示,使用一个简单的字符串数组(a)。我想用更复杂的字符串数组(b)替换(a),但是当对话框试图解析视图时,我得到了一个空指针异常

这是可能的还是我做错了什么

(a)

AlertDialog代码:
final AlertDialog.Builder dialog=new AlertDialog.Builder(new ContextThemeWrapper(ctx,R.style.mytheme));
对话框。设置标题(标题);
对话框.setIcon(R.drawable.ic_启动器);
setSingleChoiceItems(R.array.array\u items,-1,itemSelectedListener);
final AlertDialog AlertDialog=dialog.create();
array_items.xml:
方案a
方案b
(b)

array\u items\u 2.xml:
@array/array_items.xml
@array/array_items.xml
第二个xml将导致AlertDialog因NullPointerException而崩溃


我是否犯了错误,或者在没有自定义视图的情况下,AlertDialog不可能这样做?

很好,但不可能!为此,您必须维护xml文件,其中包含您想要作为静态数据的所有信息/关系,并且在语法上您必须解析该文件并提取信息。其他可能的方法是SQLite,但我不建议您尝试,因为如果您不打算执行CRUD操作,维护表没有任何意义大概吧

AlertDialog Code:

  final AlertDialog.Builder dialog = new AlertDialog.Builder(new ContextThemeWrapper(ctx,   R.style.mytheme));
  dialog.setTitle(title);
  dialog.setIcon(R.drawable.ic_launcher);
  dialog.setSingleChoiceItems(R.array.array_items, -1, itemSelectedListener);
  final AlertDialog alertDialog = dialog.create();

array_items.xml:

  <string-array name="array_items">
    <item>option a</item>
    <item>option b</item>
  </string-array>
array_items_2.xml:

  <string-array name="array_items_2">
    <item>@array/array_items.xml</item>
    <item>@array/array_items.xml</item>
  </string-array>