0

奇妙な問題があります。Androidアプリケーションの実行中に、例外が発生します。

java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RelativeLayout

私がrelativeLayoutを取得しようとするコード

v = inflater.inflate(R.layout.home, null);
RelativeLayout btn = (RelativeLayout) v.findViewById(R.id.my_button);

xmlで、私はこれを持っています:

<RelativeLayout                
                android:id="@+id/my_button" 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/button_selector"/>

デバッグ中に、vにmIDがR.id.my_buttonに等しいボタンがあることに気付きました。

ただし、xmlのidとコードを他のものに変更すると、NullPointerExceptionが発生します。

なぜこれが起こるのか考えはありますか?

編集:そのファイルの古いバージョンにButtonがあったが、RelativeLayoutに置き換えられた場合は、役立つかもしれません。私はGITを使用しています。プロジェクトは何度も掃除され、日食も再開されました。

4

2 に答える 2

0

R.Javaファイルを削除し、再作成したらアプリを実行すると正常に動作します。

于 2012-02-23T21:26:10.100 に答える
0

問題は、忘れてしまったレイアウトファイルをもう1つ作成し、それが同じアクティビティ用で、構成が異なることでした。問題が解決しました。

于 2012-05-10T09:40:05.763 に答える