当前位置: 首页 > 知识库问答 >
问题:

在android中包含ActionBar上的SwiedTabs问题

华昕
2023-03-14

我想在屏幕上只包含SwiedTabs。所以我制作没有TabListeners这样的代码,

`

package com.example.swipetabexample;

 import android.app.ActionBar;

 import android.os.Bundle;
 import android.support.v4.app.FragmentActivity;
 public class MainActivity extends FragmentActivity
{

    ActionBar ab;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ab = getActionBar();
        ActionBar.Tab at= ab.newTab();
        at.setText("Tab1");
        ab.addTab(at);

    }
}


    <android.support.v4.view.ViewPager

     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/pager"
     android:layout_height="match_parent"
     android:layout_width="match_parent">

</android.support.v4.view.ViewPager>`

当我运行这段代码时,我发现总是有错误。但我一次又一次地检查,但我找不到哪里出了问题。我发现许多博客也实现了这样的刷标签,但带有TabListener的片段。但首先,我只想看到屏幕上的选项卡。这里我给出了Logcat中显示的错误

01-20 14:52:12.264: E/AndroidRuntime(1233): FATAL EXCEPTION: main

01-20 14:52:12.264: E/AndroidRuntime(1233):进程:com.example.swipetabexample, PID: 1233 01-20 14:52:12.264: E/AndroidRuntime(1233):java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.swipetabexample/com.example.swipetabexample.MainActivity}:java.lang.IllegalStateException: Action Bar Tab必须有回调01-20 14:52:12.264: E/AndroidRuntime(1233): atandroid.app.ActivityThread.performLaunchActive(ActivityThread.java:2195)01-20 14:52:12.264: E/AndroidRuntime(1233): atandroid.app.ActivityThread.handleLaunchActive(ActivityThread.java:2245)01-20 14:52:12.264: E/AndroidRuntime(1233): atandroid.app.ActivityThread.access800美元(ActivityThread.java:135)01-20 14:52:12.264: E/AndroidRuntime(1233): atandroid.app.ActivityThread$H. handleMessage(ActivityThread.java:1196)01-20 14:52:android.os.Looper.loop(Looper.java:136)01-20 14:52:12.264: E/AndroidRuntime(1233): atandroid.app.ActivityThread.main(ActivityThread.java:5017)01-20 14:52:12.264: E/AndroidRuntime(1233): atjava.lang.reflect.Method.invokeNative(Native Method)01-20 14:52:12.264: E/AndroidRuntime(1233): atjava.lang.reflect.Method.invoke(Method.java:515)01-20 14:52:12.264: E/AndroidRuntime(1233): atcom.android.internal.os.ZygoteInit$metodAndArgsCaller.run(ZygoteInit.java:779)01-20 14:52:12.264: E/AndroidRuntime(1233): atcom.android.internal.os.ZygoteInit. main(ZygoteInit. java: 595)01-20 14:52:12.264: E/AndroidRuntime(1233): at dalvik. system. NativeStart. main(Native Method)01-20 14:52:12.264: E/AndroMainActivity. onCreate(MainActivity. java: 25)01-20 14:52:12.264: E/AndroidRuntime(1233): at android. app. Activity. performCreate(Activity. java: 5231)01-20 14:52:12.264: E/AndroidRuntime(1233): at android. app. Instrumentation. call ActivityOnCreate(Instrumentation. java: 1087)01-20 14:52:12.264: E/AndroidRuntime(1233): at android. app. ActivityThread. performLaunchActive(ActivityThread. java: 2159)01-20 14:52:12.264: E/AndroidRuntime(1233):...11更多01-20 16:59:43.564: D/dalvikvm(1368):GC_FOR_ALLOC释放77K,5%免费3415K/3568K,暂停26ms,共26ms 01-20 16:59:43.572: D/dalvi: 59:43.600: D/dalvikvm(1368):GC_FOR_ALLOC释放

共有2个答案

拓拔耀
2023-03-14

最后,我通过Eclipse的默认代码生成器得到了相同的代码。通过选择选项TabActivity而不是选择BlankActivity。

韦鸣
2023-03-14

请在创建时添加以下代码

 getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// Create a tab listener that is called when the user changes tabs.
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        // show the given tab
    }

    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
        // hide the given tab
    }

    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
        // probably ignore this event
    }
};




 ab = getActionBar();
    ActionBar.Tab at= ab.newTab();
    at.setText("Tab1");
    ab.addTab(at).setTabListener(tabListener);
 类似资料:
  • 我尝试使用build.gradle文件在我的应用程序中包含httpmime,所有的东西都编译得很好。相反,当应用程序尝试实际使用MultipartEntityBuilder类时,日志上有一堆警告级消息表示存在问题。 以下是我的build.gradle中关于依赖关系的节选: 以下是错误: Java班: [编辑]根据答案更正依赖项 [第二次编辑]仍然有问题-现在是这些其他缺失的位,但可能是后端的问题:

  • android-actionbar 是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。

  • 问题内容: 如果我没记错的话,Android准则说您应该将ActionBar用于应用程序内的全局导航。 但是同时,您通常希望定位最古老的API,以实现最大的兼容性。 我正在开始开发应用程序,并将目标设置为Android 2.2。 是否可以在此处使用操作栏?如果没有,我该怎么用? 谢谢凯文 问题答案: 使用ActionBarSherlock。 确保您的项目使用Android 4.0+作为构建目标,并

  • 问题内容: 他们是否有理由不决定在Android中添加contains方法(用于Path)? 我想知道我在路径中的点,并希望它比在这里看到的容易: 如何判断封闭路径是否包含给定点? 对我来说,创建一个ArrayList并将整数添加到数组中会更好吗?(我在控制声明中只检查了一次)。 到目前为止,我的选择是: 使用区域 使用ArrayList 扩展课堂 你的建议 我只是在寻找最有效的方法 问题答案:

  • 问题内容: 谁可以给我解释一下这个?我下面有两个查询及其结果。 查询 : 结果集 : 赫兹租车 海明威小酒馆 查询 : 结果集 : 没有 第一个查询是我期望的,但是我希望第二个查询返回“ Hertz Car Rental”。我是否从根本上误解了“ *”在全文搜索中的工作方式? 谢谢! 问题答案: 我认为SQL Server会将您的字符串解释为prefix_terms。星号不是普通的旧通配符。全文和