我正在Android中创建一个带有导航视图的tabLayout。我想将图标设置到选项卡布局的选项卡上。当我使用setIcon函数时,应用程序抛出一个空指针异常并崩溃。请帮帮我.
public class navHomeActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private TabLayout tabLayout;
private ViewPager viewPager;
int icons[] = {
R.drawable.icon1,
R.drawable.icon2,
R.drawable.icon3};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nav_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.homeViewPager);
setupViewPager(viewPager);
setupTabIcons();
tabLayout = (TabLayout) findViewById(R.id.tabHomeLayout);
tabLayout.setupWithViewPager(viewPager);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(icons[0]);
tabLayout.getTabAt(1).setIcon(icons[1]);
tabLayout.getTabAt(2).setIcon(icons[2]);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new OneFragment(), "tab1");
adapter.addFrag(new OneFragment(), "tab2");
adapter.addFrag(new OneFragment(), "tab3");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
Fragment fragment = null;
int id = item.getItemId();
if (id == R.id.nav_home)
{
setTitle("Home");
}
else if (id == R.id.frag2)
{
}
else if (id == R.id.frag3)
{
}
else if (id == R.id.frag4)
{
}
else if (id == R.id.frag5)
{
}
else if (id == R.id.frag6)
{
}
else if (id == R.id.frag7)
{
}
else if (id == R.id.frag8)
{
}
try {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.homeContentLayout, fragment).commit();
}catch (NullPointerException e){
Log.d("Exception", e.toString());}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
LogCat:
在android.app.activityThread.-wrap11(activityThread.java)在android.app.activityThread$H.HandleMessage(activityThread.java:1354)在android.os.handler.dispatchMessage(handler.java:102)在android.os.looper.loop(looper.java:148)在android.app.activityThread.main(activityThread.java:5443)在java.lang.reflect.Method.invoke(原生方法)在
在com.android.internal.os.zygoteinit.main(zygoteinit.java:618)
在调用FindViewById()
检索Tablayout
或添加任何选项卡之前,您正在调用SetupTabicons()
。尝试更改:
setupTabIcons();
tabLayout = (TabLayout) findViewById(R.id.tabHomeLayout);
tabLayout.setupWithViewPager(viewPager);
致:
tabLayout = (TabLayout) findViewById(R.id.tabHomeLayout);
tabLayout.setupWithViewPager(viewPager);
setupTabIcons();
mydateutils.java:
问题内容: 预期结果 单击切换按钮将显示菜单,并向右滑动内容视图。动画结束后,内容视图的布局参数将更新到最终位置。 问题 更新内容视图的最终位置时,该语句导致崩溃。错误消息是 源代码 问题答案: PARAMS应该RESP添加到您的父视图,假设你有作为父视图然后,必须使用。 说明 : 举个例子,并且,它们是不同的独立的类。他们存储有关子视图的不同其他信息。 可以将权重值与每个视图相关联,而不能。 可
因此,我的应用程序不断崩溃,我正在开发一个聊天应用程序,当我运行该应用程序并尝试访问profile选项卡时,logcat会崩溃。 当它运行的应用程序它的罚款,但只要我点击配置文件选项卡它崩溃它是罚款在第一,但一旦我添加更多的代码到配置文件活动它不断崩溃,但我需要的代码或它的变种 我是android studio的新手,欢迎您的帮助。 非常感谢。 这是logcat错误: 以下是简介活动:
作为快速可视化,这是我的布局: 当我为Coordinator布局设置一个ID()时,应用程序在启动时崩溃,但是删除ID可以让它正常运行。怎么回事?为什么为根视图设置ID会导致应用程序崩溃? 我见过有人用这个findViewById(android.R.id.content)来获取根视图;这是获得rootview的唯一方法吗? 崩溃日志 07-06 18:30:42.253 9385-9385/me
问题内容: 我有一个带有3个不同内容选项卡的Bootstrap“选项卡”导航。除了我要从选项卡导航之外链接到其中一个选项卡之外,它的工作原理都是完美的。这意味着当某人单击选项卡窗口外部的链接时,应将其设置为“活动”该选项卡并显示其内容。 现在,它正确显示了该选项卡的内容,但是该选项卡未设置为“活动”。我如何实现这一点,以使其像有人单击一样“活跃”? 这是代码: 非常感谢您的帮助或提示:) 问题答案
如何设置电子应用程序的应用程序图标? 我正在尝试