単純なリストダイアログを作成して表示するための内部クラスがあります。
private static class DisplayListDialogFragment extends DialogFragment
{
List<String> list;
OnClickListener clickListener;
private static DisplayListDialogFragment newInstance(List<String> list, String title, OnClickListener clickListener)
{
DisplayListDialogFragment dldf = new DisplayListDialogFragment();
dldf.list = (List<String>)list;
dldf.clickListener = clickListener;
Bundle bundle = new Bundle();
bundle.putString("title", title);
dldf.setArguments(bundle);
return dldf;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
ArrayAdapter<String> ad = new ArrayAdapter<String>(getActivity(), R.id.simpleListItem, this.list);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string._select_display)
.setSingleChoiceItems(ad, 1, this.clickListener);
return builder.create();
}
}
参照されるリソースは、文字列ファイルで宣言されています
<string name="_select_display">Select Display</string>
そしてsimple_list.xmlと呼ばれる小さなファイル
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/simpleListItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
アプリは、ラインのリソースインフレータの深さのどこかで爆発します
return builder.create();
スタックトレースは
11-12 17:21:01.664: E/AndroidRuntime(1335): android.content.res.Resources$NotFoundException: Resource ID #0x7f040052 type #0x12 is not valid
11-12 17:21:01.664: E/AndroidRuntime(1335): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1874)
11-12 17:21:01.664: E/AndroidRuntime(1335): at android.content.res.Resources.getLayout(Resources.java:731)
11-12 17:21:01.664: E/AndroidRuntime(1335): at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
11-12 17:21:01.664: E/AndroidRuntime(1335): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
11-12 17:21:01.664: E/AndroidRuntime(1335): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
リソースIDは、R.javaで次のように定義されています。
public static final int simpleListItem=0x7f040052
(つまり、上記のsimple_list.xmlファイルで宣言されたTextView)
誰かが何が悪いのかわかりますか?今、頭をかいてます。
ありがとう
アンドリュー