findViewByIdが間違った要素を返す理由を私は理解できない、ここにクラスです:findViewByIdが間違った要素を戻しますか?
public class EventDetailsFragment extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_details);
Log.d("First", findViewById(R.id.tuxtView1).getClass().toString());
Log.d("Second", findViewById(R.id.tuxtView2).getClass().toString());
Log.d("Third", findViewById(R.id.imageView1).getClass().toString());
}
}
そして、ここではXMLです:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp">
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="0dp"
android:layout_height="175dp"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:background="#fff"
android:gravity="right" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="110dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/ic_event_image" />
<TextView
android:id="@+id/tuxtView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/tuxtView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tuxtView2"
android:layout_toRightOf="@+id/imageView1"
android:textColor="#555"
android:textSize="20dp" />
</RelativeLayout>
</LinearLayout>
logcatの出力リレーは次のとおりです。
12-26 23:43:20.249: D/First(6789): class android.widget.TextView
12-26 23:43:20.249: D/Second(6789): class android.widget.ImageView
12-26 23:43:20.249: D/Third(6789): class android.widget.TextView
それでは、なぜ私はidがR.id.tuxtView2の画像ビューとidがR.id.imageView1のテキストビューを取得するのですか? TextViewとしてキャストされたR.id.tuxtView2にテキスト値を割り当てたい場合、アプリケーションがクラッシュします。
R.javaでプロジェクトをリロードしてみてください。あるいは、setContentViewを使用して適切なファイルを呼び出していることを確認してください。 –
よく書かれた質問。申し訳ありませんが、なぜこれが起こるかの手がかりがありません。 –
@JeremyD、うわー、私は、Eclipseを再起動する以外は、何時間も何も試していた。私は日食を再開し、それは突然再び働いた。私は自分のコードで何か間違っていると思った。答えとして投票し、解決したものとしてマークしてください。ありがとう! – jonepatr