使用上下文菜单查看页面中的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;