2013-10-22 20 views
1

我正在使用HeaderListView(http://applidium.github.io/HeaderListView/)向ListView添加粘性標題。一切運作良好,但我無法找出哪個項目被點擊。不幸的是,他們沒有在他們的演示應用程序中顯示。Android:實現HeaderListView,無法訪問RowItem

我在他們的網站上發現我需要使用onRowItemClick方法,但不知道如何調用它。我到目前爲止:

SectionListAdapter bindingData = new SectionListAdapter(c, inflater, 3); //SectionListAdapter extends SectionAdapter 
articleList.setAdapter(bindingData); //articleList = HeaderListView 

// Click event for single list row 
articleList.setOnItemClickListener(new OnClickListener() { 
public void onRowItemClick(AdapterView<?> parent, View view, int section, int row, long id) { 
    Intent i = new Intent(); 
    i.setClass(getActivity(), ArticleActivity.class); 

    // Pass object to next activity 

    startActivity(i); 
} 
}); 

我在做什麼錯在下面的行?

articleList.setOnItemClickListener(new OnClickListener() { 

謝謝!

回答

1

查看源代碼後,看起來您必須創建自定義適配器類(例如:MyCustomSectionAdapter,或許這是您的'SectionListAdapter')。

在這個類需要實現的方法:

public void onRowItemClick(AdapterView<?> parent, View view, int section, int row, long id) { 


} 

然後應該叫,我猜。

編輯:

我已經下載了代碼,並沒有爲我工作的。

將第40行的以下代碼添加到HeaderListView類後,它確實有效。

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      if (mAdapter != null) 
       mAdapter.onItemClick(parent, view, position, id); 
     } 
    }); 

看起來就好像點擊連接從未產生。發現它有點奇怪,我想應該有另一種解決方案,但現在工作。

代碼證:http://applidium.github.io/HeaderListView/#license

+0

正確和onRowItemClick實現,但我的問題是關於下面一行:articleList.setOnItemClickListener(新OnClickListener(),因爲setOnItemClickListener沒有爲HeaderListView定義不編譯,使用什麼而不是? – sebastiansieber

+0

我不認爲你應該在articleList上放置任何clickListener,而是在適配器的OnRowItemClick內部實現你的代碼 – Lauw

+1

好了,我在我的適配器類中實現了onRowItemClick(...)方法,但它仍然是我不需要告訴articleList來調用這個方法嗎?不好意思問這麼多問題,但是這個HeaderListView類實際上沒有被很好的記錄。 – sebastiansieber