Aby*_*zar 1 android android-fragments android-viewpager android-tablayout
我正在创建一个像instagram这样的简单项目,它的主要活动有3个标签。我想在tablayout标签中添加带有文本的图标,但是会引发异常。
我的主要活动
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
TabLayout.Tab tab = tabLayout.getTabAt(0);
tab.setIcon(new IconicsDrawable(this).icon(FontAwesome.Icon.faw_home));
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
}
private class CustomAdapter extends FragmentPagerAdapter {
private String items[] = {"Home", "Upload", "Profile"};
public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new fragment1();
case 1:
return new fragment2();
case 2:
return new fragment3();
default:
return null;
}
}
@Override
public int getCount() {
return items.length;
}
@Override
public CharSequence getPageTitle(int position) {
return items[position];
}
}
}
Run Code Online (Sandbox Code Playgroud)
此代码引发nullpointer异常,我该怎么办?
例外文字
09-29 14:33:53.004 29528-29528 / com.example.eyepatch.shutter E / AndroidRuntime:致命例外:主
进程:com.example.eyepatch.shutter,PID:29528
java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.eyepatch.shutter / com.example.eyepatch.shutter.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法'android.support.design.widget.TabLayout $ Tab android.support.design。在null对象引用上的widget.TabLayout $ Tab.setIcon(android.graphics.drawable.Drawable)'
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2494),位于android.app.ActivityThread.access $ 900(ActivityThread.java:157)
在android.os.Looper.loop
(Looper.java:148)
在android.os.Handler.dispatchMessage(Handler.java:102)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1356 )
在android。 com的
java.lang.reflect.Method.invoke(本机方法)
处的app.ActivityThread.main(ActivityThread.java:5530)com.com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:733) android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
原因:java.lang.NullPointerException:尝试调用虚拟方法'android.support.design.widget.TabLayout $ Tab android.support.design.widget。 TabLayout $ Tab.setIcon(android.graphics.drawable.Drawable)'在空对象引用上
在com.example.eyepatch.shutter.MainActivity.onCreate(MainActivity.java:33)在android.app.Activity.performCreate(Activity.java:6272)
在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)在android.app.ActivityThread.access $ 900(ActivityThread.java:157)
在android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2494)在android.app.ActivityThread.access $ 900(ActivityThread.java:157) 在android.app。 android.os.Handler.dispatchMessage(Handler.java:102)的ActivityThread $ H.handleMessage(ActivityThread.java:1356)
android.os.Looper.loop(Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5530)
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:733)处com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
您应该首先将适配器设置为viewpager
重新排列以下几行:
tabLayout.setupWithViewPager(viewPager);
TabLayout.Tab tab = tabLayout.getTabAt(0);
tab.setIcon(new IconicsDrawable(this).icon(FontAwesome.Icon.faw_home));
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
Run Code Online (Sandbox Code Playgroud)
如下所示:
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
tabLayout.setupWithViewPager(viewPager);
TabLayout.Tab tab = tabLayout.getTabAt(0);
tab.setIcon(new IconicsDrawable(this).icon(FontAwesome.Icon.faw_home));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |