2011-06-30 44 views
-1

我想创建一个包含微调控件的自定义弹出对话框。需要对话从一个适配器类推出,下面是我的代码:使用Spinner的ResourceNotFoundException

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(); 

此代码执行正常,但过一段时间后“秀()”,我看到一个例外:资源$ NotFoundException。 callstack中的最后一项是Resources.loadXmlResourceParser。如果我不使用findViewById分配微调器,而是通过微调= 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

会不会是一个ArrayAdapter的情况下应该是对话,而不是活动? – Marmoy

回答

0

您使用具有构造函数上下文和TextView ID的数组适配器,但只是将它作为文本视图资源ID传递给它。

在这里看到的API:ArrayAdapter

尝试:

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

或其他的你的资源选择

+0

哦!这工作 - 谢谢! –

相关问题