私はこのソースをAndroidSDKのAlertDialog
res\layoutフォルダーのレイアウトとして見ました。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout android:id="@+id/body"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:paddingLeft="8dip"
android:paddingTop="10dip"
android:paddingRight="8dip"
android:paddingBottom="10dip">
<ProgressBar android:id="@android:id/progress"
style="@android:style/Widget.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="10000"
android:layout_marginRight="12dip" />
<TextView android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</LinearLayout>
</FrameLayout>
IDが次のような「メッセージ」であるTextViewを見つけようとしました。
TextView tvMessage = (TextView)dialog.findViewById(android.R.id.message);
正常に動作します。次に、IDが次のように「body」であるLinearLayoutを見つけようとしました。
LinearLayout body = (LinearLayout)dialog.findViewById(android.R.id.body);
しかし、日食はこのエラーを示しています:
body cannot be resolved or is not a field
これはスニペットコードです:
ProgressDialog dialog = new ProgressDialog(WriteOpinionActivity.this);
dialog.setMessage("some text");
dialog.show();
TextView tvMessage = (TextView)dialog.findViewById(android.R.id.message);
LinearLayout body = (LinearLayout)dialog.findViewById(android.R.id.body);
このエラーが発生する理由と、「本体」に到達する方法を教えてください。