如何将选项卡添加到ActionBar中以进行滑动选项卡?

萨拉拉斯塔里(Salar Rastari)

我想使用创建两个滑动选项卡ActionBar

这是我的代码:

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.rastari.salar.mymetarialbank.R;

/**
 * Created by Salar on 9/5/2015.
 */
public class AccountsActivityChart extends FragmentActivity implements ActionBar.TabListener {

    ActionBar actionBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chart);

        actionBar=getActionBar();
        actionBar.setNavigationMode(actionBar.NAVIGATION_MODE_TABS);

        //Add the Action Bar Tabs
        actionBar.addTab(actionBar.newTab().setText("Accounts Activity"+"Chart Activity").setTabListener(this));

    }


    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }
}

当我运行应用程序时,会发生此错误:

> 05-11 06:09:28.013    2371-2371/? E/AndroidRuntime﹕ FATAL EXCEPTION:
> main
>     Process: com.rastari.salar.mymetarialbank, PID: 2371
>     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rastari.salar.mymetarialbank/com.rastari.salar.mymetarialbank.activity.AccountsActivityChart}:
> java.lang.NullPointerException: Attempt to invoke virtual method 'void
> android.app.ActionBar.setNavigationMode(int)' on a null object
> reference
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
>             at android.app.ActivityThread.access$800(ActivityThread.java:151)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:135)
>             at android.app.ActivityThread.main(ActivityThread.java:5254)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:372)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
>      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setNavigationMode(int)' on
> a null object reference
>             at com.rastari.salar.mymetarialbank.activity.AccountsActivityChart.onCreate(AccountsActivityChart.java:21)
>             at android.app.Activity.performCreate(Activity.java:5990)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
>             at android.app.ActivityThread.access$800(ActivityThread.java:151)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:135)
>             at android.app.ActivityThread.main(ActivityThread.java:5254)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:372)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 05-11
> 06:09:30.037      444-504/? E/InputDispatcher﹕ channel '155e1fbc
> com.rastari.salar.mymetarialbank/com.rastari.salar.mymetarialbank.activity.MainActivity
> (server)' ~ Channel is unrecoverably broken and will be disposed!
> 05-11 06:09:30.037      444-504/? E/InputDispatcher﹕ channel '2f2170b7
> com.rastari.salar.mymetarialbank/com.rastari.salar.mymetarialbank.activity.Login
> (server)' ~ Channel is unrecoverably broken and will be disposed!

在此处输入图片说明

我真的不知道该怎么办!你们能指导我吗?太感谢了。

最新代码:

import android.support.v7.app.ActionBar
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import com.rastari.salar.mymetarialbank.R;

public class AccountsActivityChart extends ActionBarActivity implements ActionBar.TabListener {

    ActionBar actionBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chart);

        actionBar = getSupportActionBar();
        actionBar.setNavigationMode(actionBar.NAVIGATION_MODE_TABS);

        //Add the Action Bar Tabs
        actionBar.addTab(actionBar.newTab().setText("Accounts Activity"+"Chart Activity").setTabListener(this));
    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

    }
}
S

首先,您正在创建一个FragmentActivity并希望看到ActionBar不会发生的情况。

代替

AccountsActivityChart extends FragmentActivity

AccountsActivityChart extends ActionBarActivity

其次,你需要打电话

actionBar = getSupportActionBar();

代替

actionBar = getActionBar();

因为它ActionBarActivityappcompat-v7图书馆的一部分这就是为什么您的应用在调用时崩溃的原因actionBar.setNavigationMode(),因为与一起使用时会getActionBar()返回nullFragmentActivity

完成此操作后,您应该可以使用

actionBar.setNavigationMode(actionBar.NAVIGATION_MODE_TABS);

成功并看到您下方的可滑动标签ActionBar

编辑:

代替

import android.app.ActionBar

import android.support.v7.app.ActionBar 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将列添加到选项卡中?CSS、HTML

来自分类Dev

如何将多个选项卡关闭事件处理程序添加到 JavaFX 选项卡?

来自分类Dev

将内容添加到android中的固定滑动选项卡

来自分类Dev

如何将工作空间(选项卡组)添加到PhpStorm?

来自分类Dev

R Shiny:如何将数据表添加到动态创建的选项卡

来自分类Dev

如何将面板添加到Extjs选项卡

来自分类Dev

如何将“音频/视频属性”选项卡添加到Caja?

来自分类Dev

如何将选项卡控件添加到RichTextBox?

来自分类Dev

如何将图标添加到我的选项卡布局活动

来自分类Dev

如何将活动状态添加到选项卡

来自分类Dev

如何将 xtype 作为项目添加到 Extjs tabpanel 中动态创建的选项卡

来自分类Dev

如何将 PyQt4 中的选项卡添加到我的文本编辑器?

来自分类Dev

在 Bootstrap 4 的滑块导航中,如何将“活动”类添加到当前选项卡?

来自分类Dev

如何将编辑器添加到特定选项卡的整个工作表保护中?

来自分类Dev

Angular-UI选项卡:将类添加到特定选项卡

来自分类Dev

将按钮添加到选项卡和选项卡区域JavaFX

来自分类Dev

将添加选项卡添加到TemplateRole

来自分类Dev

如何将卡从“待处理”选项卡添加到“已批准”?Vue.js

来自分类Dev

如何将主视图控制器添加到不是选项卡栏项目之一的选项卡栏控制器?

来自分类Dev

将viewpager添加到选项卡

来自分类Dev

将动画添加到jQuery内容选项卡

来自分类Dev

将课程添加到Drupal 7选项卡

来自分类Dev

将选项卡添加到现有项目

来自分类Dev

jQuery将类添加到活动选项卡

来自分类Dev

使用片段将图像添加到选项卡

来自分类Dev

将选项卡添加到特定列

来自分类Dev

将记录添加到不同的选项卡

来自分类Dev

C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

来自分类Dev

C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

Related 相关文章

  1. 1

    如何将列添加到选项卡中?CSS、HTML

  2. 2

    如何将多个选项卡关闭事件处理程序添加到 JavaFX 选项卡?

  3. 3

    将内容添加到android中的固定滑动选项卡

  4. 4

    如何将工作空间(选项卡组)添加到PhpStorm?

  5. 5

    R Shiny:如何将数据表添加到动态创建的选项卡

  6. 6

    如何将面板添加到Extjs选项卡

  7. 7

    如何将“音频/视频属性”选项卡添加到Caja?

  8. 8

    如何将选项卡控件添加到RichTextBox?

  9. 9

    如何将图标添加到我的选项卡布局活动

  10. 10

    如何将活动状态添加到选项卡

  11. 11

    如何将 xtype 作为项目添加到 Extjs tabpanel 中动态创建的选项卡

  12. 12

    如何将 PyQt4 中的选项卡添加到我的文本编辑器?

  13. 13

    在 Bootstrap 4 的滑块导航中,如何将“活动”类添加到当前选项卡?

  14. 14

    如何将编辑器添加到特定选项卡的整个工作表保护中?

  15. 15

    Angular-UI选项卡:将类添加到特定选项卡

  16. 16

    将按钮添加到选项卡和选项卡区域JavaFX

  17. 17

    将添加选项卡添加到TemplateRole

  18. 18

    如何将卡从“待处理”选项卡添加到“已批准”?Vue.js

  19. 19

    如何将主视图控制器添加到不是选项卡栏项目之一的选项卡栏控制器?

  20. 20

    将viewpager添加到选项卡

  21. 21

    将动画添加到jQuery内容选项卡

  22. 22

    将课程添加到Drupal 7选项卡

  23. 23

    将选项卡添加到现有项目

  24. 24

    jQuery将类添加到活动选项卡

  25. 25

    使用片段将图像添加到选项卡

  26. 26

    将选项卡添加到特定列

  27. 27

    将记录添加到不同的选项卡

  28. 28

    C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

  29. 29

    C#WinForms,将选项卡添加到选项卡控件,然后以编程方式将控件添加到每个选项卡

热门标签

归档