使用Spinner的ResourceNotFoundException

时间:2011-06-30 20:31:09

标签: android dialog spinner

我想创建一个包含微调器的自定义弹出对话框。该对话框需要从Adapter类启动,下面是我的代码:

 Dialog dialog = new Dialog(mContext);
 dialog.setContentView(R.layout.myPopup);
 Spinner spinner = (Spinner)dialog.findViewById(R.id.spinner);
 ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(mContext, 0);
 arrayadapter.add("AddSomeStrings");
 spinner.setAdapter(arrayadapter);
 dialog.show();

此代码执行正常,但在“show()”之后的某个时间,我看到一个异常:Resources $ NotFoundException。 callstack中的最后一项是Resources.loadXmlResourceParser。如果我没有使用findViewById分配微调器,而是通过spinner = new Spinner(dialog.getContext())分配它,那么我没有得到错误(但当然我看不到我的对话框)。

myPopup布局包含:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/layout_root"
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:padding="10dp"
          >
  <Spinner 
    android:id="@+id/spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="true"
    android:prompt="@string/group_prompt"
     />
 </LinearLayout>

有什么想法我做错了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您使用带有Constructor Context和TextView ID的数组适配器,但您只是将其作为文本视图资源ID传递给它。

请在此处查看API:ArrayAdapter

尝试:

  ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item);

或您选择的其他资源