2013-04-17 49 views
0

在數組適配器的getView函數中,position屬性的意義是什麼?我堅持一個例子,其中getView被一次又一次地調用值0,而傳遞給它的列表具有多個元素。 請幫助int position在getView中的重要性

private ArrayAdapter<Connection> buildConnectionAdapter(final ArrayList<Connection> connectionList) { 
     ArrayAdapter<Connection> attachmentadapter = new ArrayAdapter<Connection>(this, R.layout.text_view, R.id.dummy, connectionList) { 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 
       final String value; 
       Connection obj = connectionList.get(position); 
       value = obj.getValue(); 
       TextView tv = new TextView(UserGlobalAppSettings.this); 
       SpannableString str = makeLinkSpan(value, new OnClickListener() { 
        @Override 
        public void onClick(View v) { 
        } 
       }); 
       str.setSpan(new URLSpan(""), 0, value.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
       tv.setText(str); 
       tv.setTag(obj); 
       return tv; 
      } 
     }; 
     return attachmentadapter; 

    } 

佈局是這樣

<ListView 
         android:id="@+id/im_services_list" 
         android:layout_width="wrap_content" 
         android:layout_height="fill_parent" > 
        </ListView> 

回答

0

得到了答案...我們不假設根據谷歌理念使用兩個可滾動的項目在彼此之內!!!! ...但alaltady寫了很多代碼和時間所以這樣做! 。

public static void setListViewHeightBasedOnChildren(ListView listView) { 
    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) { 
     // pre-condition 
     return; 
    } 
    int totalHeight = 0; 
    for (int i = 0; i < listAdapter.getCount(); i++) { 
     View listItem = listAdapter.getView(i, null, listView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 
    ViewGroup.LayoutParams params = listView.getLayoutParams(); 
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
    listView.setLayoutParams(params); 
} 
+0

你是什麼意思?你是否在你的listView中創建了一個listView/scrollView? –

+0

yes!..有一個複雜的ScrollView> ListView –

+0

上面的方法工作正常,用於計算列表視圖的大小和手動設置 –

0

位置屬性定義項目的位置列表/微調點擊,如果您的列表顯示爲0的項目即使有多個項目的列表正在被正確傳遞,我會建議檢查適配器的getcount方法,它是否返回正在傳遞的列表的計數。

+0

試過了! dosent work.Show某種情況,getView被多次調用,位置值= 0.同樣也重寫了getCount方法。 –

+0

在get count中添加yourlist.length在return語句中,它發生getview對同一位置運行多次。 –

+0

做到了!劑量工作! –

相關問題