Android 无法在活动中使用viewpager创建片段。
我需要使用Android 无法在活动中使用viewpager创建片段。,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我需要使用Fragment将ViewPager添加到扩展TabActivity的主要活动部分。 为此,我创建了一个viewPageActivity类,该类扩展了FragmentActivity,从这里它添加了FragmentAdapter调用,该调用创建了Fragment,其中包含我要创建的视图。 但我面临的问题是,我无法让我的主类在我的主要活动上创建viewpager 我想问题是当我在我的主类上调用类ViewPagerActivity时,它不能创建片段来创建viewpager 请帮帮我,我已经
Fragment
将ViewPager
添加到扩展TabActivity
的主要活动部分。
为此,我创建了一个viewPageActivity
类,该类扩展了FragmentActivity
,从这里它添加了FragmentAdapter
调用,该调用创建了Fragment
,其中包含我要创建的视图。
但我面临的问题是,我无法让我的主类在我的主要活动上创建viewpager
我想问题是当我在我的主类上调用类ViewPagerActivity
时,它不能创建片段来创建viewpager
请帮帮我,我已经陷入这个困境将近一个月了,我尝试的每个解决方案都失败了。
这些代码在单独的项目中单独实现时运行良好,但在我的项目中实现时似乎无法执行
ViewPageActivity类
class ViewPagerClass extends FragmentActivity implements OnClickListener
{
TestFragmentAdapter mAdapter;
ViewPager mviewpager;
CirclePageIndicator mIndicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new TestFragmentAdapter(getSupportFragmentManager());
mviewpager = new ViewPager(getApplicationContext());
mviewpager.setId(R.id.viewPager);
mviewpager.setAdapter(mAdapter);
mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mviewpager);
}
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
}
TestFragmentAdapter.java
class TestFragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
protected static final String[] CONTENT = new String[] { "This", "Is", "A", "Test"};
protected static final int[] ICONS = new int[] {};
private int mCount = CONTENT.length;
public TestFragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
}
@Override
public int getCount() {
return mCount;
}
@Override
public CharSequence getPageTitle(int position) {
return TestFragmentAdapter.CONTENT[position % CONTENT.length];
}
@Override
public int getIconResId(int index) {
return ICONS[index % ICONS.length];
}
public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
您忘记了设置内容视图,所以在初始化ViewPager后设置您的内容视图,因为ViewPager是您的内容视图
setContentView(mviewpager);
您忘记了设置内容视图,所以在初始化ViewPager后设置您的内容视图,因为ViewPager是您的内容视图
setContentView(mviewpager);
代码最终在这里和那里进行了一些更改。我想在这里添加它们,以帮助其他开发人员解决与我相同的问题
我需要在我的主要活动的一部分中添加一个使用片段的ViewPager,该部分扩展了TabActivity。为此,我创建了一个ViewPageActivity类,它扩展了FragmentActivity,从这里它添加了对FragmentAdapter的调用,该调用创建了包含我要创建的视图的片段。但我面临的问题是,我无法让我的主类在我的主要活动上创建viewpager
- 首先,我无法扩展多个类,因为我需要
Fragment
和TabActivity
- 我找到了一个可以扩展
选项卡
功能的地方,也可以作为监听器。我是这样做的:
public class Main extends FragmentActivity implements OnClickListener,TabContentFactory{ }
- 然后,我将类
viewPageActivity
中的代码写入Main
- 我想这是主要问题。无论如何,我更改了代码,在
TestFragment
类中创建了Bundle
,如下所示
public static TestFragment newInstance(String content) {
TestFragment fragment = new TestFragment();
Bundle args = new Bundle();
args.putString("content", content);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// the if clause wasnot working for me
mContent = getArguments().getString("content");
}
- 更改为
onCreate
以返回视图,而不是我先前缺少的布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pagerframe, container,false);
LayoutParams textparam = new LayoutParams(LayoutParams.FILL_PARENT,30);
TestView text = new TextView(getActivity());
text.setText(mContent);
text.setTextColor(Color.WHITE);
LinearLayout layout = (LinearLayout) view.findViewById(R.id.pager_ll);
layout.setVisibility(View.VISIBLE);
layout.setGravity(Gravity.CENTER);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(edtext,textparam);
return view;
}
- 在这之后,一切都很顺利
代码最终运行起来,只是做了一些改动。我想在这里添加它们,以帮助其他开发人员解决与我相同的问题
我需要在我的主要活动的一部分中添加一个使用片段的ViewPager,该部分扩展了TabActivity。为此,我创建了一个ViewPageActivity类,它扩展了FragmentActivity,从这里它添加了对FragmentAdapter的调用,该调用创建了包含我要创建的视图的片段。但我面临的问题是,我无法让我的主类在我的主要活动上创建viewpager
- 首先,我无法扩展多个类,因为我需要
Fragment
和TabActivity
- 我找到了一个可以扩展
选项卡
功能的地方,也可以作为监听器。我是这样做的:
public class Main extends FragmentActivity implements OnClickListener,TabContentFactory{ }
- 然后,我将类
viewPageActivity
中的代码写入Main
- 我想这是主要问题。无论如何,我更改了代码,在
TestFragment
类中创建了Bundle
,如下所示
public static TestFragment newInstance(String content) {
TestFragment fragment = new TestFragment();
Bundle args = new Bundle();
args.putString("content", content);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// the if clause wasnot working for me
mContent = getArguments().getString("content");
}
- 更改为
onCreate
以返回视图,而不是我先前缺少的布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pagerframe, container,false);
LayoutParams textparam = new LayoutParams(LayoutParams.FILL_PARENT,30);
TestView text = new TextView(getActivity());
text.setText(mContent);
text.setTextColor(Color.WHITE);
LinearLayout layout = (LinearLayout) view.findViewById(R.id.pager_ll);
layout.setVisibility(View.VISIBLE);
layout.setGravity(Gravity.CENTER);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(edtext,textparam);
return view;
}
- 在这之后,一切都很顺利
谢谢您的帮助,但是viewpager只是主视图的一部分,即使我使用addView(mviewpager)它也不起作用。如果viewpager只是一部分,那么很容易在xml文件中定义。Bdw您的代码应该返回包含TextView的视图,该视图应该显示您的mContent(检查您的mContent是空的还是空的,如果是这样,您的视图什么也不显示);我建议您先设置一个静态文本谢谢您的帮助,但是viewpager只是主视图的一部分,即使我使用addView(mviewpager)它也不起作用。如果viewpager只是一个部分,那么很容易在xml文件中定义。Bdw您的代码应该返回包含TextView的视图,该视图应该显示您的mContent(检查您的mContent是空的还是空的,如果是这样,您的视图什么也不显示);我建议您先设置一个静态文本