使用上下文菜单查看页面中的Android ListFragment
我有一个使用上下文菜单查看页面中的Android ListFragment,android,android-viewpager,android-listfragment,Android,Android Viewpager,Android Listfragment,我有一个ViewPager,它在每页上使用ListFragments。我实现了onListItemClick和onContextItemSelected以分别处理列表项单击和长时钟。ListFragment数据通过AsyncTask从internet加载 所需的行为是短按列表视图项以启动详细信息活动,以显示该位置的详细信息(这是一个天气应用程序)。当用户长按时,弹出一个上下文菜单,为用户提供其他选项,包括查看原始数据 简短的新闻和细节活动效果良好。问题是长按,上下文菜单。当用户在第3页上,使用长
ViewPager
,它在每页上使用ListFragments
。我实现了onListItemClick
和onContextItemSelected
以分别处理列表项单击和长时钟。ListFragment
数据通过AsyncTask
从internet加载
所需的行为是短按列表视图项以启动详细信息活动,以显示该位置的详细信息(这是一个天气应用程序)。当用户长按时,弹出一个上下文菜单,为用户提供其他选项,包括查看原始数据
简短的新闻和细节活动效果良好。问题是长按,上下文菜单。当用户在第3页上,使用长按选择列表中的第2项,然后选择该位置的“显示原始数据”时,将显示第2页第2项的原始数据,而不是第3页
现在我正在使用setOffscreenPageLimit(1)。当我将其更改为setOffscreenPageLimit(2)时,将显示第1页的数据,而不是第3页的数据
代码:
我试图弄明白为什么原始和locationID数据不是从当前显示在ViewPager上的片段中提取的,而是从偏移页中提取的。我还在学习片段,所以我可能错过了一些微妙的东西。我发现:
info.targetView
让我获得了我一直坚持的视图。从那里我可以做一个findviewbyd
来得到我需要的东西
@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.cmenu_showRaw:
ViewGroup dataPanel = (ViewGroup) myListView.getChildAt(info.position);
TextView tvRaw = (TextView) dataPanel.findViewById(R.id.textRaw);
TextView tvLocationID = (TextView) dataPanel.findViewById(R.id.textLocationId);
showDismissDialog(tvRaw.getText().toString(), tvLocationID .getText().toString());
return true;