Android错误:类型不匹配无法从android.app.actionbar转换为android.support.v7.app.actionbar

时间:2014-10-11 03:50:50

标签: java android eclipse android-fragments

我目前收到错误:

type mismatch cannot convert from android.app.actionbar to android.support.v7.app.actionbar

错误发生在actionBar=getActionBar();上。

我想知道它是否与我的导入文件或我可能如何设置我的片段XML文件有关?这是我的相关代码:

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

public class Main_activity extends FragmentActivity implements TabListener {

    public static final String PREFS_NAME = "MyPreferncesfile";

    ActionBar actionBar; 
    @Override
    public void onCreate(Bundle arg0) {
        super.onCreate(arg0);
        setContentView(R.layout.activity_main);

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

        ActionBar.Tab tab1=actionBar.newTab();
        tab1.setText("Tab 1");
        tab1.setTabListener(this); 

        ActionBar.Tab tab2=actionBar.newTab();
        tab2.setText("Tab 2");
        tab2.setTabListener(this); 

        ActionBar.Tab tab3=actionBar.newTab();
        tab3.setText("Tab 1");
        tab3.setTabListener(this); 

        actionBar.addTab(tab1);
        actionBar.addTab(tab2);
        actionBar.addTab(tab3);
    }

    public void onTabReselected1(Tab tab, FragmentTransaction ft) {

        Log.d("VIVZ", "onTabReselected at "+" position "+tab.getPosition()+" name "+tab.getText());

    }

    public void onTabSelected1(Tab tab, FragmentTransaction ft) {
        Log.d("VIVZ", "onTabSelected at "+" position "+tab.getPosition()+" name "+tab.getText());

    }

    public void onTabUnselected1(Tab tab, FragmentTransaction ft) {
        Log.d("VIVZ", "onTabUnselected at "+" position "+tab.getPosition()+" name "+tab.getText());         
    }
 }

1 个答案:

答案 0 :(得分:10)

当您使用appComapt然后更改时,您应该执行以下操作....

FragmentActivity更改为ActionBarActivity

actionBar=getSupportActionBar();