2011-06-30 9 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を。コールスタックの最後のアイテムは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として0を渡すだけです。

はここAPIを参照してください:ArrayAdapter

試してみてください。

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

かの他のリソースの選択

+0

ああ!これは働いた - ありがとう! –