gpt4 book ai didi

android - 如何在ListFragment中调用addHeaderView?

转载 作者:行者123 更新时间:2023-11-30 04:36:16 25 4
gpt4 key购买 nike

在Fragment中将headerView设置为ListView是正确的做法吗?我有一些 fragment (见下面的代码)。在这个 fragment 中,我填充了 ListView。但是我不知道在哪里可以调用addHeaderView。谁能帮帮我?

public class FeedsListForViewFragment extends ListFragment {

private Context mContext;
List<FeedItem> items;
private int layoutForList = R.layout.list_feeds_simple;
private ActiveRecordBase _db;
private Activity mActivity;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivity = getActivity();
_db = ((JtjApplication)getActivity().getApplication()).getDatabase();
try {
_db.open();
} catch (ActiveRecordException e) {
e.printStackTrace();
}

}

public void setItemsToList(List<FeedItem> items, int curPosition) {
mContext = getActivity().getApplicationContext();
this.items = items;
ListView lv = getListView();
setListAdapter(new ListOfFeedsAdapter(mContext, layoutForList, items, mActivity));
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lv.setCacheColorHint(Color.WHITE);

setPosition(curPosition);
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
if (!(((FeedsActivity) getActivity()).getCurrentPosition() == position)) {
updateUnreadItemsInDb(position);

updateLinksList(position, items.get(position));
((FeedsActivity) getActivity()).setCurrentPosition(position);
}
}

@SuppressWarnings("unchecked")
private void updateUnreadItemsInDb(int position) {
FeedItem feed = items.get(position);
if (feed.isRead != true) {
List<FeedItem> feedsForUpdate = null;
List<FeedType> lft = null;
try {
feedsForUpdate = _db.find(FeedItem.class, false, "GUID=?", new String[] { String.valueOf(feed.guid) }, null, null, "PUBLICATIONDATE DESC", null);
lft = _db.findAll(FeedType.class);
} catch (ActiveRecordException e1) {
e1.printStackTrace();
}
for (FeedItem curFeed:feedsForUpdate) {
curFeed.isRead = true;
try {
curFeed.save();
FeedType ft = lft.get(Integer.parseInt(curFeed.channel_id) - 1);
ft.unread_count = ft.unread_count - 1;
ft.update();
} catch (ActiveRecordException e) {
e.printStackTrace();
}
}
items.get(position).isRead = true;
((ArrayAdapter<FeedItem>) getListView().getAdapter()).notifyDataSetChanged();
}
}

private void setPosition(int position) {
ListView lv = getListView();
lv.setSelection(position);
lv.setItemChecked(position, true);
try{
updateLinksList(position, items.get(position));
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
}

private void updateLinksList(int position, FeedItem feedItem) {
FeedsViewFragment viewFragment = (FeedsViewFragment) getFragmentManager().findFragmentById(R.id.feed_view_fragment);
viewFragment.setViewItem(feedItem);
}
}

最佳答案

您可以在以下时间调用 addHeaderView():

ListView lv = getListView();

和:

setListAdapter(new ListOfFeedsAdapter(mContext, layoutForList, items, mActivity));

现在,我还没有在 ListFragment 上尝试标题 View,所以虽然它应该可以工作,但有可能由于某种原因它没有。

关于android - 如何在ListFragment中调用addHeaderView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com