2011-06-30 46 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

哦!這工作 - 謝謝! –

相關問題