gpt4 book ai didi

android - 无法在 Activity 中使用 viewpager 创建 fragment 。

转载 作者:行者123 更新时间:2023-11-30 03:46:56 27 4
gpt4 key购买 nike

我需要使用 Fragment 添加一个 ViewPager 到我扩展 TabActivity 的主要 Activity 的一部分。为此,我创建了一个 ViewPagerActivity 类,它扩展了 FragmentActivity ,从这里它添加了调用 FragmentAdapter 来创建 Fragment,其中包含我要创建的 View 。但我面临的问题是我无法让我的主类在我的主要 Activity 中创建 viewpager。

我认为问题是当我在我的主类上调用类 ViewPagerActivity 时,它无法创建 fragment 来创建 viewpager.

请帮助我已经坚持了将近一个月,我尝试的每个解决方案都失败了。这些代码在单独的项目中单独实现时运行完美,但在我的项目中实现时似乎无法执行。

ViewPagerActivity 类

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
}
}

测试 fragment 适配器.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();
}
}

测试 fragment .java

public final class TestFragment extends Fragment {
private static final String KEY_CONTENT = "TestFragment:Content";
static TestFragment fragment = new TestFragment();
public static TestFragment newInstance(String content) {
StringBuilder builder = new StringBuilder();
builder.append(content).append("\n");
fragment.mContent = builder.toString();
return fragment;
}
private String mContent = "???";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((savedInstanceState != null) && savedInstanceState.containsKey(KEY_CONTENT)) {

mContent = savedInstanceState.getString(KEY_CONTENT);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pagerframe, container);
LayoutParams textparam = new LayoutParams(130,40);
TestView text = new TextView(getActivity());
text.setText(mContent);
text.setTextColor(Color.WHITE);
LinearLayout layout = (LinearLayout) view.findViewById(R.id.pager_ll);
layout.setBackgroundColor(Color.BLUE);
layout.setVisibility(View.VISIBLE);
layout.setGravity(Gravity.CENTER);
layout.setOrientation(LinearLayout.VERTICAL);

layout.addView(text,textparam);
return layout;
}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(KEY_CONTENT, mContent);
}
}

最佳答案

您忘记了设置您的内容 View ,因此在初始化您的 ViewPager 之后设置您的内容 View ,因为 View pager 是您的内容 View

setContentView(mviewpager);

关于android - 无法在 Activity 中使用 viewpager 创建 fragment 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851562/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com