我想创建一个包含微调器的自定义弹出对话框。该对话框需要从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>
有什么想法我做错了吗?谢谢!
答案 0 :(得分:0)
您使用带有Constructor Context和TextView ID的数组适配器,但您只是将其作为文本视图资源ID传递给它。
请在此处查看API:ArrayAdapter
尝试:
ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item);
或您选择的其他资源