-1
我正在編程地將視圖添加到for循環中的佈局中。ImageView在設置ID後消失
我加入佈局的XML文件是這樣的一個:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout_consulta_item_list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView_consulta_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/LinearLayout_dados_consulta"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/LinearLayout_dados_consulta"
android:layout_centerHorizontal="true"
android:layout_centerInParent="false"
android:adjustViewBounds="true"
android:maxWidth="70dp"
android:padding="10dp"
android:scaleType="centerInside"
android:src="@drawable/estrela_off" />
<LinearLayout
android:id="@+id/LinearLayout_dados_consulta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:layout_toLeftOf="@+id/imageView_consulta_action"
android:background="#660000"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="@string/origem"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ffaaaa"
android:textSize="10sp" />
<TextView
android:id="@+id/textView_origem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="YYY"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#eeeeee" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:text="@string/data_ida"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ffaaaa"
android:textSize="10sp" />
<TextView
android:id="@+id/textView_data_ida"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2014-05-05"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#eeeeee"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
在我main_activity,我調用構造函數:
for (int i=0;i<resultList.length-1;i++){
RelativeLayout viewToLoad = (RelativeLayout)LayoutInflater.from(this).inflate(R.layout.consulta_item, null);
ll.addView(viewToLoad);
ImageView ImgConsulta_action = (ImageView)findViewById(R.id.imageView_consulta_action);
LinearLayout dados_consulta = (LinearLayout)findViewById(R.id.LinearLayout_dados_consulta);
dados_consulta.setOnLongClickListener(...);
ImgConsulta_action.setOnLongClickListener(...);
嗯,我一直對所有設置的setText佈局中的意見等等。
但是,爲了使setOnClickListener爲每個視圖中工作,我必須一個ID設置爲內部的for循環的觀點:
dados_consulta.setId(4000+i);
ImgConsulta_action.setId(5000+i); //(*lastline)
怪異的事情發生的事情是:
如果我對最後一行進行註釋,那麼佈局會正確插入,並且圖像視圖會顯示一顆星星,因爲它與「dados_consulta」中的偵聽器工作正常。
但是,如果我刪除最後一行的註釋,則該星從屏幕消失。
任何人都可以幫助我理解發生了什麼嗎?
你的代碼中有沒有其他地方使用這一行:'ImageView ImgConsulta_action =(ImageView)findViewById(R.id.imageView_consulta_action);'? – Merlevede
請發送代碼部分與導致問題的代碼段。 –
@Merlevede不,這是唯一的地方。我要求ImgConsulta_action的其他行是設置標記,onClickListener,setImageResource和setId。順便說一句,是代碼的和平導致問題 – Totalys