1
私はAndroid 4.4.4/4.4.2/5.0.2でfindViewById()を使用しました。findViewByIdはandroid 4.4.4でnullを返します
しかし、4.4.4にはエラー 'NullpointException'しかありません。
これはMainActivityのコードです。
FrameLayout fl = (FrameLayout) this.findViewById(Util.StringToResourceID(this, "id", "main_map_fl"));
すべてのアンドロイドにはエラーはありませんが、4.4.4ではnullが返されます。
しかし、
Util.StringToResourceID(this, "id", "main_map_fl")
それは値を返します。 nullではありません。
私はそのコードの前にsetContentViewを試しました。
私はきれいなプロジェクトも最初に試しました。
なぜエラーが発生したのかわかりません。私を助けてください。
+)
ここにmain_map_fl」を持っている私の.xmlコードがあります。
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_rl"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<include
android:id="@+id/main_tbt_ll"
android:layout_width="200dp"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
layout="@layout/layout_sub_tbt"
android:visibility="visible" />
<FrameLayout
android:id="@+id/main_map_fl"
android:layout_width="fill_parent"
android:layout_height="fill_parent
android:layout_toLeftOf="@+id/main_tbt_ll"
android:background="#ffff0000" >
</FrameLayout>
<ImageView
android:id="@+id/main_tbt_shadow_iv"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_toLeftOf="@+id/main_tbt_ll"
android:background="@drawable/shadow_w" />
<LinearLayout
android:id="@+id/main_action_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<TextView
android:id="@+id/main_action_set_admin_tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:background="#b2333333"
style="@style/font_31p_255_255_255"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bottom_bar_bg" >
<ImageButton
android:background="@drawable/btn_main_actionbar_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/main_action_back_ib"
android:layout_gravity="center_vertical"/> ......
</LinearLayout>
</LinearLayout>
++)
Util.StringToResourceID
intにパッケージ名とクラスの文字列ですが、私は思います。
public static int StringToResourceID(Context context, String _class, String _field) {
int rval = 0;
String a = context.getPackageName() + ".R$" + _class;
try {
Class Ra = Class.forName(a);
try {
rval = Ra.getField(_field).getInt(Ra);
} catch (IllegalArgumentException var7) {
...........
return rval;
}
とは何ですか... Util.StringToResourceID –
私は私のquenstionを編集しました! @MartinMarconcini – parfum
まあ、返される数字は? R.javaを見て、 –