【问题标题】:android.support.v7.app.ActionBar & android.app.ActionBarandroid.support.v7.app.ActionBar & android.app.ActionBar
【发布时间】:2016-07-16 10:28:24
【问题描述】:

我试图创建一个带有标签的应用程序,但我收到了错误..请帮助..

当我使用 'ActionBar actionBar' 并在这行代码处出错时:
actionBar = getActionBar(); -> incompatible type.
当我使用 android.app.ActionBar actionBar 我在这一行出现错误:

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); -> error
        for (int i = 0; i < 3; i++) {
            actionBar.addTab(actionBar.newTab().setText(tabNames[i])
                    .setTabListener(this)); -> error
        }



app module :<br>
    android {
        compileSdkVersion 23
        buildToolsVersion "22.0.1"


        defaultConfig {
            useLibrary 'org.apache.http.legacy'
            minSdkVersion 21
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
}

标签活动

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.os.Bundle;


public class tabActivity extends FragmentActivity implements ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter tabPagerAdapter;
    private android.app.ActionBar actionBar;
    private String[] tabNames = { "First", "Second"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tabActivity);
        viewPager = (ViewPager) findViewById(R.id.pager);
        tabPagerAdapter = new TabsPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(tabPagerAdapter);
        actionBar = getActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        for (int i = 0; i < 3; i++) {
            actionBar.addTab(actionBar.newTab().setText(tabNames[i])
                    .setTabListener(this));
        }
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageSelected(int postion) {
                actionBar.setSelectedNavigationItem(postion);
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }
    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
    }
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        viewPager.setCurrentItem(tab.getPosition());
    }
    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
    }
}

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"


    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:requiresSmallestWidthDp="600"
        android:smallScreens="true"
        android:xlargeScreens="true" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".Mn_Login"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".TabActivity"
            android:label="TAB" />
    </application>

</manifest>

【问题讨论】:

  • 你能发布你的堆栈跟踪吗?

标签: android android-actionbar fragment tabview


【解决方案1】:

尝试扩展AppCompatActivity 而不是FragmentActivity,而不是getActionBar() 使用getSupportActionBar()

【讨论】:

  • 或者在样式中添加&lt;item name="windowActionBar"&gt;false&lt;/item&gt;
  • @Sourabh ,我已经按照你的建议尝试了,但还是不行。谢谢
  • 你能发你的styles.xml
  • @Lim YC 您是否按照我的建议尝试访问 ACTION_BAR 功能?
  • n.arrow001 是的,我已经尝试过但没有工作...... @Sourabh 这是我的样式.xml
【解决方案2】:

如果你想要 Tab,你可以试试这个。

TabHost th = getTabHost();

        //Tab 1
        TabSpec tab1= th.newTabSpec("Tab Name");
        tab1.setIndicator("Frame Anim", getResources().getDrawable(R.drawable.ic));
        Intent move = new Intent(getApplicationContext(), FrameAnimation.class);
        tab1.setContent(move);
        //Tab 2
        TabSpec tab2= th.newTabSpec("Tab Name");
        tab2.setIndicator("Tween Amin", getResources().getDrawable(R.drawable.ic));
        Intent movetween = new Intent(getApplicationContext(), TweenAnimations.class);
        tab2.setContent(movetween); 
        th.addTab(tab1);
        th.addTab(tab2);

并在布局文件中添加 TabHost。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多