Android 带有片段的Viewpager创建java.lang.RuntimeException
我正在尝试创建一个带有片段的Viewpager 我有4项活动与我的问题有关 这是第一个活动 (ViewPagePractivity是第二个活动): 剩下的两个活动是Viewpageradapter,它是适配器 对于我的viewpager,最后一个是称为ViewpagerFragment的片段 以下是我的适配器语法:Android 带有片段的Viewpager创建java.lang.RuntimeException,android,android-fragments,Android,Android Fragments,我正在尝试创建一个带有片段的Viewpager 我有4项活动与我的问题有关 这是第一个活动 (ViewPagePractivity是第二个活动): 剩下的两个活动是Viewpageradapter,它是适配器 对于我的viewpager,最后一个是称为ViewpagerFragment的片段 以下是我的适配器语法: package com.exple.v1; import android.support.v4.app.Fragment; import android.support.v4.ap
package com.exple.v1;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
public class ViewpagerAdapter extends FragmentStatePagerAdapter{
int[] image = {};
public ViewpagerAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public Fragment getItem(int position) {
// TODO Auto-generated method stub
return new ViewpagerFragment();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 5;
}
}
这是我的片段类:
package com.exple.v1;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class ViewpagerFragment extends Fragment{
public ViewpagerFragment()
{
}
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.viewpager_item,
container, false);
return rootView;
}
}
由于某种原因,出现了一条错误消息。
以下是logcat的全部错误:
05-02 09:05:51.580: E/AndroidRuntime(32031): FATAL EXCEPTION: main
05-02 09:05:51.580: E/AndroidRuntime(32031): Process: com.exple.v1, PID: 32031
05-02 09:05:51.580: E/AndroidRuntime(32031): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exple.v1/com.exple.v1.ViewpagerActivity}: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.access$900(ActivityThread.java:161)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.os.Handler.dispatchMessage(Handler.java:102)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.os.Looper.loop(Looper.java:157)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.main(ActivityThread.java:5356)
05-02 09:05:51.580: E/AndroidRuntime(32031): at java.lang.reflect.Method.invokeNative(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031): at java.lang.reflect.Method.invoke(Method.java:515)
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
05-02 09:05:51.580: E/AndroidRuntime(32031): at dalvik.system.NativeStart.main(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031): Caused by: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.exple.v1.ViewpagerActivity.onCreate(ViewpagerActivity.java:19)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.Activity.performCreate(Activity.java:5426)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
05-02 09:05:51.580: E/AndroidRuntime(32031): ... 11 more
正如我所解释的,我应该得到一个viewpager,它应该显示我5
viewpages(如果您想知道为什么只有5个,请参阅适配器)
我做错了什么 在
viewPageActivity
中,您在没有ViewPager
的情况下使用了不正确的布局,因此,寻呼机为空,您会收到NullPointerException
将viewPageActivity
的onCreate
方法更改为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpagers);
pager = (ViewPager)findViewById(R.id.viewpager);
adapter = new ViewpagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
}
显示活动的布局?您的
activity\u main
布局是否包含viewpager
?activity\u main不包含viewpager,只包含listview
05-02 09:05:51.580: E/AndroidRuntime(32031): FATAL EXCEPTION: main
05-02 09:05:51.580: E/AndroidRuntime(32031): Process: com.exple.v1, PID: 32031
05-02 09:05:51.580: E/AndroidRuntime(32031): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exple.v1/com.exple.v1.ViewpagerActivity}: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.access$900(ActivityThread.java:161)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.os.Handler.dispatchMessage(Handler.java:102)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.os.Looper.loop(Looper.java:157)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.main(ActivityThread.java:5356)
05-02 09:05:51.580: E/AndroidRuntime(32031): at java.lang.reflect.Method.invokeNative(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031): at java.lang.reflect.Method.invoke(Method.java:515)
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
05-02 09:05:51.580: E/AndroidRuntime(32031): at dalvik.system.NativeStart.main(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031): Caused by: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031): at com.exple.v1.ViewpagerActivity.onCreate(ViewpagerActivity.java:19)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.Activity.performCreate(Activity.java:5426)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-02 09:05:51.580: E/AndroidRuntime(32031): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
05-02 09:05:51.580: E/AndroidRuntime(32031): ... 11 more
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpagers);
pager = (ViewPager)findViewById(R.id.viewpager);
adapter = new ViewpagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
}