2012-07-19 73 views
3

我有一個類(foo)擴展ListActivity,它實例化一個類(fooAdap)擴展ArrayAdapter。在fooAdap中,有getview()方法,用於填充我的ListView。從ArrayAdapter類更改ListView分隔符?

從foo類中,我可以調用getListView()。setDividerHeight(0)並使分隔符消失。有沒有辦法從fooAdap的getView()中訪問該方法?

foo.java

public class foo extends ListActivity 
{ 
    ... 
    protected void onCreate (Bundle savedInstanceState) 
    { 
     super.onCreate (savedInstanceState); 
     ... 
     ListView lv = getListView(); 
     lv.setDividerHeight (0); 
     fooAdap foo = new fooAdap (this,android.R.layout.simple_list_item_single_choice, mRowData); 
     ... 
    } 

fooAdap.java

public class fooAdap extends ArrayAdapter 
{ 
    ... 

    public View getView (int position, View convertView, ViewGroup parent) 
    { 
     ... 

     switch (position) 
     { 
     case 1: // show divider for these rows in listview 
     case 2: 
     break; 

     case 3: // hide divider for this row in listview 
     break; 
     } 
     ... 
    } 
} 
+0

我的答案可以幫助你,如果不是,請讓我知道我會爲你尋找這個。謝謝 – SALMAN 2012-07-20 08:11:07

回答

0

最後我使我自己的分配器和設置的ListView dividerHeight()爲0,在XML佈局。

我有一個獨立的ListView行佈局,並在那裏添加了另一個LinearLayout和TextView。然後我將android sdk目錄中的divider_horizo​​ntal_dark.9.png文件複製到我的res /目錄中,並將新的TextView的背景設置爲它,並將MaxHeight設置爲1dp作爲textview。

現在,我可以將LinearLayout切換到getView()方法中的View.VISIBLE或View.GONE。很長的路,但似乎讓我想我想要的。

0

你有通currentActivity對象fooAdap它就在那裏可以輕鬆完成。

或者您可以通過fooAdap構造函數傳遞該Activity對象。

Activity currentActivity=foo.this; 

    fooAdap foo = new fooAdap (this,android.R.layout.simple_list_item_single_choice, mRowData); 
    foo.currentActivity=currentActivity; 


    public class fooAdap extends ArrayAdapter 
    { 
    Activity currentActivity; 

    public View getView (int position, View convertView, ViewGroup parent) 
     { 
      ... 

      switch (position) 
      { 
      case 1: // show divider for these rows in listview 

      case 2: 
      break; 

      case 3: // hide divider for this row in listview 
       this.currentActivity.getListView().setDividerHeight(0); 
      break; 
      } 
      ... 
     } 


    } 

這一定會幫助你。

感謝

+0

感謝您的想法。這確實允許我訪問getListView(),但會導致它在滾動時奇怪地繪製。仍在試驗。 – wufoo 2012-07-20 14:57:48