2015-08-27 62 views
-1

我使用CustomAdapter與四個LinearLayouts爲水平一XML的XML是像如何獲取Android中自定義適配器的佈局位置?

XML代碼:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/ivImage" 
      android:layout_width="0dp" 
      android:layout_height="77dp" 
      android:layout_weight="0.2" /> 

     <ImageView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight=".05" 
      android:src="@drawable/divider" /> 

     <LinearLayout 
      android:id="@+id/ll1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_weight="0.25" 
      android:gravity="center" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/tvVal" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="#FF0000" 
       android:padding="3dp" 
       android:text="ff" 
       android:textColor="@android:color/white" 
       android:textSize="16dp" 
       android:visibility="invisible" /> 

      <TextView 
       android:id="@+id/tv1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="99.99" 
       android:textColor="#000000" 
       android:textSize="16dp" /> 

      <TextView 
       android:id="@+id/tv2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="5dp" 
       android:text="Laundry" 
       android:textColor="#3A9ED4" 
       android:textSize="10dp" /> 
     </LinearLayout> 

     <ImageView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight=".05" 
      android:src="@drawable/divider" /> 

     <LinearLayout 
      android:id="@+id/ll2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_weight="0.25" 
      android:gravity="center" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/tvVal1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="#FF0000" 
       android:padding="3dp" 
       android:text="ff" 
       android:textColor="@android:color/white" 
       android:textSize="16dp" 
       android:visibility="invisible" /> 

      <TextView 
       android:id="@+id/tv3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="99.99" 
       android:textColor="#000000" 
       android:textSize="16dp" /> 

      <TextView 
       android:id="@+id/tv4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="5dp" 
       android:text="Dry Clean" 
       android:textColor="#3A9ED4" 
       android:textSize="10dp" /> 
     </LinearLayout> 

     <ImageView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight=".05" 
      android:src="@drawable/divider" /> 

     <LinearLayout 
      android:id="@+id/ll3" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_weight="0.25" 
      android:gravity="center" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/tvVal2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="#FF0000" 
       android:padding="3dp" 
       android:text="ff" 
       android:textColor="@android:color/white" 
       android:textSize="16dp" 
       android:visibility="invisible" /> 

      <TextView 
       android:id="@+id/tv5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="99.99" 
       android:textColor="#000000" 
       android:textSize="16dp" /> 

      <TextView 
       android:id="@+id/tv6" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="5dp" 
       android:text="Stream Iron" 
       android:textColor="#3A9ED4" 
       android:textSize="10dp" /> 
     </LinearLayout> 
    </LinearLayout> 
在此我從服務器獲取的圖像的TextView數據這樣

holder.ll1 = (LinearLayout) rowView.findViewById(R.id.ll1); 
       holder.ll2 = (LinearLayout) rowView.findViewById(R.id.ll2); 
       holder.ll3 = (LinearLayout) rowView.findViewById(R.id.ll3); 
       holder.tv1 = (TextView) rowView.findViewById(R.id.tv1); 
       holder.tv2 = (TextView) rowView.findViewById(R.id.tv3); 
       holder.tv3 = (TextView) rowView.findViewById(R.id.tv5); 
       holder.img = (ImageView) rowView.findViewById(R.id.ivImage); 
       holder.tvVal = (TextView) rowView.findViewById(R.id.tvVal); 
       holder.tvVal1 = (TextView)rowView.findViewById(R.id.tvVal1); 
       holder.tvVal2 = (TextView)rowView.findViewById(R.id.tvVal2); 

設置查看組件的數據

  holder.tv1.setText(wash_v.get(position)); 
      holder.tv2.setText(dry_v.get(position)); 
      holder.tv3.setText(iron_v.get(position)); 

這裏的問題是我沒有得到單獨的佈局位置,所以如何獲得單個佈局位置的位置?

+0

我沒有得到你的問題,但如果你想正確地獲得項目的位置,那麼你應該在'getView()'方法中將標籤設置爲'setTag()',並使用標籤獲取位置爲'getTag ()' – Apurva

+0

我們如何設置linearlayout的標籤我認爲holder.ll1.setTag() –

+0

你能解釋一下爲什麼你需要佈局的位置,這樣我可以爲你提供一些替代解決方案,如果可能 –

回答

0

您需要將標記設置爲每次都膨脹的視圖。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    convertView.setTag(holder); 
    ... 
    ... 
} 

這個標籤將被連接到的listview每一個項目,你用getTag()方法需要時獲取標籤。

+0

我需要linearlayout位置你怎麼可以說 –

+0

你的線性佈局是listview項目的觀點吧?所以listview item標籤本身就是線性佈局的標籤。 – Apurva

相關問題