我有一个主要活动与ActionBar。在运行时,尽管actionbar对象被初始化为getActionBar(),但我接收到具有以下logcat输出的NPE
主要活动:
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager mViewPager;
private MyTabsPagerAdapter mPagerAdapter;
private ActionBar mActionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<Fragment> mFragList = new ArrayList<Fragment>();
mFragList.add(new Aufgabe_1());
mFragList.add(new Fragment02());
mFragList.add(new Fragment03());
mViewPager = (ViewPager) findViewById(R.id.pager);
mActionBar = getActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mPagerAdapter = new MyTabsPagerAdapter(getSupportFragmentManager(), mFragList);
mViewPager.setAdapter(mPagerAdapter);
for(int i=0; i<mFragList.size(); i++) {
mActionBar.addTab(mActionBar.newTab().setText("Aufgabe_"+(i+1)).setTabListener(this));
}
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
mActionBar.setSelectedNavigationItem(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(arg0.getPosition());
//mActionBar.setSelectedNavigationItem(arg0.getPosition());
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
logcat:
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: FATAL EXCEPTION: main
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: Process: com.example.com.myapplication, PID: 26079
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.com.myapplication/com.example.com.vpager_02.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on a null object reference
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2689)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2754)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:177)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on a null object reference
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.example.com.vpager_02.MainActivity.onCreate(MainActivity.java:33)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6288)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2642)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2754)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:177)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-09 15:34:35.080 26079-26079/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-09 15:34:35.080 795-1150/? V/ApplicationPolicy: isApplicationStateBlocked userId 0 pkgname com.example.com.myapplication
而不是从FragmentActivity
扩展,只是扩展窗体AppCompatActivity
并调用GetSupportActionBar()
而不是GetActionBar()
问题内容: 多次询问了这个问题,我已经尝试了全部。但不幸的是,两者都没有为我工作。 我正在尝试实现两个活动之间的导航,这是学习Android应用程序开发的一部分。我的最小SDK版本和目标SDK版本分别为11和21(Android 5)。我在AndroidManifest.xml中的设置如下所示: 我有两个活动:MainActivity和DetailActivity。当我单击MainActivity
问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:
问题内容: 我在使用Ajax时遇到问题。 问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。 有没有办法使正确的返回响应值? 谢谢! 问题答案: 由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。 我建议重构您的代码以解决此问题。 一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方
我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?
问题内容: 我创建了一个自定义错误类型来包装错误,以便更轻松地在Golang中进行调试。当有打印错误时它可以工作,但是现在引起了恐慌。 演示版 当我调用一个函数时,它不会返回错误,我仍然应该能够包装该错误。 预期的行为是,如果错误为nil,则应该简单地忽略它,不幸的是,它会做相反的事情。 我希望它能打印出来。而是即使错误为nil也会打印。 问题答案: 正在将err变量与nil进行比较,但实际上它是
问题内容: 有人可以向我解释为什么返回类型 只是返回类型 我不明白为什么地图会映射到一个以上的值。TIA。 问题答案: 它返回具有 相同 名称的控件的所有参数值。 例如: 要么 任何选中/选择的值都将以以下形式出现: 对于表中的多个选择它也很有用: 与…结合