E/AndroidRuntime(15041): FATAL EXCEPTION: main
E/AndroidRuntime(15041): Process: ks.developers.festoforcollege, PID: 15041
E/AndroidRuntime(15041): java.lang.RuntimeException: Unable to start activiComponentInfo{ks.developers.festoforcollege/ks.developers.festoforcollege.Register}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
E/AndroidRuntime(15041): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
E/AndroidRuntime(15041): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
E/AndroidRuntime(15041): at android.app.ActivityThread.access$800(ActivityThread.java:156)
E/AndroidRuntime(15041): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
E/AndroidRuntime(15041): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(15041): at android.os.Looper.loop(Looper.java:211)
E/AndroidRuntime(15041): at android.app.ActivityThread.main(ActivityThread.java:5371)
E/AndroidRuntime(15041): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(15041): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(15041): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
E/AndroidRuntime(15041): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
E/AndroidRuntime(15041): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
E/AndroidRuntime(15041): at ks.developers.festoforcollege.Register.onCreate(Register.java:33)
E/AndroidRuntime(15041): at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime(15041): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime(15041): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
E/AndroidRuntime(15041): ... 10 more
当我们从一个活动转移到托管一个托管主机的另一个活动时,为什么会出现此错误
单击我使用的按钮时
Intent j = new Intent(Login.this,Register.class);
startActivity(j);
和托管标签页的活动代码是 import android.app.ActionBar; import android.app.ActionBar.Tab; import android.os.Bundle; import android.app.FragmentTransaction; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import ks.developers.festoforcollege.R; import ks.developers.festoforcollege.tabswipe.adapter.TabsPagerAdapter;
public class Register extends FragmentActivity implements ActionBar.TabListener{
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "College Details", "Fest Details", "Contact","User Id" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
/**
* on swiping the viewpager make respective tab selected
* */
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}
意图有问题吗?我的意思是有任何其他方法可以从activity到fragmentActivity。
答案 0 :(得分:0)
只需阅读堆栈跟踪即可。它清楚地表明你试图在null对象上做.setAdapter(),对象是你的ViewPager对象。
这意味着以下代码不起作用:
viewPager = (ViewPager) findViewById(R.id.pager);
'activity_main.xml'中没有一个元素具有id'pager'。