我需要更改TextView'放置在FragmentActivity具有 aViewPager和 a的布局中的 s 文本ViewPagerAdapter。基本上,我在我的应用程序中创建了一个操作栏,显示当前可见的名称Fragment。
因此,我需要TextView在每次更改可见片段时更改此内容ViewPager(通过滑动动作或使用 选择TabHost)。从我的搜索中我发现这种方法应该可以帮助我实现我的目标:
    @Override
public void setUserVisibleHint(boolean isVisibleToUser) 
{
    Log.d(TAG, "setUserVisibleHint invoked!");
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) 
    {
        if (odTab != null && getActivity() != null)
        {
            Log.d(TAG, "Currently visable tab: "+odTab.getTabTitle());
            Toast.makeText(getActivity(), "Currently visable tab: "+odTab.getTabTitle(), Toast.LENGTH_LONG).show();
            if (application.getCurrentDataSource() == DataSource.SSRS)
            {
                if (rsTab.getTabTitle().equals("")  || rsTab.getTabTitle() == null)
                {
                    tabName.setVisibility(View.GONE);
                }
                else
                {
                    tabName.setText(rsTab.getTabTitle());
                }
            }
            else if (application.getCurrentDataSource() == DataSource.SGRDL)
            {
                Log.d(TAG, "found Title textView from fragmentActivity");
                if (odTab.getTabTitle().equals("")  || odTab.getTabTitle() == null)
                {
                    ((TabsViewPagerFragmentActivity)getActivity()).findViewById(R.id.tvTabName).setVisibility(View.GONE);
                }
                else
                {
                    Log.d(TAG, "set Title textView to: "+odTab.getTabTitle());
                    ((TextView) ((TabsViewPagerFragmentActivity)getActivity()).findViewById(R.id.tvTabName)).setText(odTab.getTabTitle());
                }
            }
        }
    }   
}
我试图在我的片段中实现它,但出于某种原因,这一行:
((TextView) ((TabsViewPagerFragmentActivity)getActivity()).findViewById(R.id.tvTabName)).setText(odTab.getTabTitle());
尽管对于 viewPager 中片段的每次更改,日志中都会显示此行,但它什么也没做:
Log.d(TAG, "set Title textView to: "+odTab.getTabTitle());
更新:我的适配器:
public class ViewPagerAdapter extends FragmentPagerAdapter 
{
private List<Fragment> fragments;
/**
 * @param fm
 * @param fragments
 */
public ViewPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}
/* (non-Javadoc)
 * @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
 */
@Override
public Fragment getItem(int position) {
    return this.fragments.get(position);
}
/* (non-Javadoc)
 * @see android.support.v4.view.PagerAdapter#getCount()
 */
@Override
public int getCount() {
    return this.fragments.size();
}
@Override
public int getItemPosition(Object object) {
    return POSITION_NONE;
}  
}
难道我做错了什么?还有其他方法可以执行此操作吗?