在我的主佈局(在創建時設置)我有一些包含的佈局,其中有imageview
在其中。在我的代碼中,我需要爲這些imageView設置位圖。我的方法是這樣的:findViewById返回null現有的包含佈局
(ImageView) ((findViewById(R.id.first_app + (i - 1)).findViewById(R.id.app_image)));
我是循環變量。 問題是我得到空的findViewById(R.id.first_app +(I - 1),但這些佈局在主要佈局存在
請幫我找到這個錯誤的原因,我真的很困惑,我。 「M接近最後期限 這裏是我的主要佈局的xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3"
tools:context=".MoreAppsActivity" >
<RelativeLayout
android:id="@+id/more_app_title"
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center"
android:background="#EA7026">
<ImageView
android:id="@+id/more_app_title_img"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@android:color/transparent"
android:src="@drawable/more_app_title_image"/>
</RelativeLayout>
<include
android:id="@+id/first_app"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
layout="@layout/single_app_layout" />
<include
android:id="@+id/second_app"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
layout="@layout/single_app_layout" />
<include
android:id="@+id/third_app"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
layout="@layout/single_app_layout" />
<RelativeLayout
android:id="@+id/more_app_subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="60dp"
android:gravity="center"
android:background="#DBBE00">
<ImageButton
android:id="@+id/more_app_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:src="@drawable/more_app_threecircle"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:layout_below="@id/more_app_button"
android:layout_marginTop="5dp"
android:text="?????? ??? ?????"/>
</RelativeLayout>
</LinearLayout>
,其中包括佈局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageView
android:id="@+id/app_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"/>
<LinearLayout
android:id="@+id/app_text_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:weightSum="100">
<TextView
android:id="@+id/app_text"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="30"
android:background="#88000000"
android:text="aligholi salavat"
android:textSize="22sp"
android:gravity="center"
android:textColor="@android:color/white"/>
</LinearLayout>
</FrameLayout>
也許我不知道,你知道的東西,但什麼是你想用findViewById(R.id.xyz +(I-1)),怎麼辦? – jpm
R.id是一個整數。由於我包含的佈局是順序的,他們的ID是連續的兩個。 (不同之處在於一個)。我在循環中使用它來防止代碼冗餘。 –
@alireza:R.id可能會解析爲整數,但是'R.id.first_app'(例如)實際上只是'R.java'類文件中'static final'字段的名稱。你不能把它當作字符串來處理,只需追加數字即可。 – Squonk