我使用片段制作了3个滑动标签,我希望每个片段都显示文本视图。我的问题是,我该怎么做?现在它写了#34;片段#"在每个标签中,但是文本视图呢?我想在每个标签中写下很多文字。 这就是我写它的片段编号:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
TextView tvTitle = (TextView) view.findViewById(R.id.tvTitle);
tvTitle.setText("Fragment #" + mPage); //Here
return view;
所以相反,我想要3个文本视图;每个标签中有一个
编辑: 滑动片段:
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 3;
private String tabTitles[] = new String[] { "Tab1", "Tab2", "Tab3" };
public SampleFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Fragment getItem(int position) {
return PageFragment.newInstance(position + 1);
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
}
FRAGMENT:
public class PageFragment extends Fragment {
public static final String ARG_PAGE = "ARG_PAGE";
private int mPage;
public static PageFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPage = getArguments().getInt(ARG_PAGE);
}
// Inflate the fragment layout we defined above for this fragment
// Set the associated text for the title
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
TextView tvTitle = (TextView) view.findViewById(R.id.tvTitle);
tvTitle.setText("Fragment #" + mPage);
return view;
}
}
我明白了:
我想在每个标签中写一些不同的东西。我的意思是不同的文本视图,所以我不想写片段#1,而是想写自己的文本(其他标签也一样)
答案 0 :(得分:0)
您已经拥有允许您为每个页面设置不同文本的框架。自定义文本的最简单方法是修改newInstance()
方法:
public static PageFragment newInstance(String message) {
Bundle args = new Bundle();
args.putString(ARG_MSG, message);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
(请记住创建ARG_MSG
常量,该常量类似于您已有的ARG_PAGE
常量。)
现在您需要获取ARG_MSG
并设置TextView
以显示它。这与您已经使用页码进行的操作非常相似。我会留下细节让你弄明白。