【问题标题】:How to use fragment with Viewpager for Swipe pages如何将片段与 Viewpager 一起用于滑动页面
【发布时间】:2013-04-05 07:36:56
【问题描述】:

我对 Viewpager 和 Fragment 有疑问。我想创建滑动视图,因为我需要带有 Viewpager 的片段类。我怎么能实现这样的事情!!

我用viewpager在网上搜索得到了类似的东西!!

   public class ViewPagerFragmentActivity extends FragmentActivity {

    private PagerAdapter mPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.viewpager_layout);

        // initialsie the pager
        this.initialisePaging();
    }

    /**
     * Initialize the fragments to be paged
     */
    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment0.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);

        ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
        pager.setAdapter(this.mPagerAdapter);
    }
}

清单文件:

 <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name="slider.example.ViewPagerFragmentActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="slider.example.Fragment0" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
        <activity android:name="slider.example.Fragment1" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
        <activity android:name="slider.example.Fragment2" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
<activity android:name=".MyPagerAdapter"></activity>
    </application>

错误:

04-05 13:22:39.804: E/AndroidRuntime(468): FATAL EXCEPTION: main
04-05 13:22:39.804: E/AndroidRuntime(468): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{slider.example/slider.example.ViewPagerFragmentActivity}: java.lang.ClassNotFoundException: slider.example.ViewPagerFragmentActivity in loader dalvik.system.PathClassLoader[/data/app/slider.example-2.apk]
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.os.Looper.loop(Looper.java:123)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-05 13:22:39.804: E/AndroidRuntime(468):  at java.lang.reflect.Method.invokeNative(Native Method)
04-05 13:22:39.804: E/AndroidRuntime(468):  at java.lang.reflect.Method.invoke(Method.java:507)
04-05 13:22:39.804: E/AndroidRuntime(468):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-05 13:22:39.804: E/AndroidRuntime(468):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-05 13:22:39.804: E/AndroidRuntime(468):  at dalvik.system.NativeStart.main(Native Method)
04-05 13:22:39.804: E/AndroidRuntime(468): Caused by: java.lang.ClassNotFoundException: slider.example.ViewPagerFragmentActivity in loader dalvik.system.PathClassLoader[/data/app/slider.example-2.apk]
04-05 13:22:39.804: E/AndroidRuntime(468):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
04-05 13:22:39.804: E/AndroidRuntime(468):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
04-05 13:22:39.804: E/AndroidRuntime(468):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-05 13:22:39.804: E/AndroidRuntime(468):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
04-05 13:22:39.804: E/AndroidRuntime(468):  ... 11 more

有人可以指导我@thanks !!

【问题讨论】:

  • @RajeshCP 谢谢,但我需要使用动态页面我该怎么做
  • 您可以为此使用 pagerAdapter,每次页面更改时都会提供您想要的 Fragment。

标签: android android-viewpager fragment


【解决方案1】:

我发现本教程非常清晰,对创建 Fragment ViewPager 很有帮助:

http://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/

检查一下,另外也请参考这里:

http://androidtrainningcenter.blogspot.co.il/2012/10/viewpager-example-in-android.html http://manishkpr.webheavens.com/android-viewpager-example/ http://manishkpr.webheavens.com/android-viewpager-circle-style-example/

不带标签的 ViewPager:

http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/

更新:

首先去掉这部分:

<activity android:name="slider.example.Fragment0" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
<activity android:name="slider.example.Fragment1" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
<activity android:name="slider.example.Fragment2" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait" />
<activity android:name=".MyPagerAdapter"></activity>

片段或适配器不是活动,您不应该将它们写入清单文件。

并尝试改变这部分:

<activity android:name="slider.example.ViewPagerFragmentActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

到这里:

<activity android:name=".ViewPagerFragmentActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

【讨论】:

  • 谢谢,但我需要没有标签..我怎么能这样做!!
  • 发布您的 ViewPagerFragmentActivity 代码和清单文件代码。
  • Emil Adz 你能帮帮我吗!
【解决方案2】:

访问“Replacing a fragment in a view pager”,查看寻呼机交易。当你想研究碎片时,请访问-'http://developer.android.com/guide/components/fragments.html#Lifecycle'

【讨论】:

  • 谢谢我使用它时出错了!!04-05 13:22:39.804: E/AndroidRuntime(468): FATAL EXCEPTION: main 04-05 13:22:39.804: E/AndroidRuntime( 468):java.lang.RuntimeException:无法实例化活动 ComponentInfo{slider.example/slider.example.ViewPagerFragmentActivity}:java.lang.ClassNotFoundException:slider.example.ViewPagerFragmentActivity 在加载器 dalvik.system.PathClassLoader[/data/app/ slider.example-2.apk]
  • Sino Raj 你能帮帮我吗!
  • 不要在你的activity中添加所有的类,然后记住所有的类都不是activity。你在哪里使用片段作为活动,所以请研究一下 Activity 以及它与片段、适配器类等的不同之处
  • 在您的帖子/问题的布局中添加一个片段、适配器和视图寻呼机
猜你喜欢
  • 2013-12-27
  • 1970-01-01
  • 2013-12-23
  • 2017-10-21
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多