2015-04-25 3 views
0

Привет всем, это мое приложениедобавить вкладку перелистывания фрагмента

enter image description here enter image description here

Я хочу добавить 2 таба красть Accounts активности и таблицы в макет fragment_accounts.xml. У меня есть навигационное меню ящика тоже.

это fragment_accounts.xml:

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

и это AccountsFragment.java: Я получаю эту ошибку

Error:(44, 33) error: incompatible types: android.app.ActionBar cannot be converted to android.support.v7.app.ActionBar

import android.os.Bundle; 
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.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import com.rastari.salar.mymetarialbank.R; 
import com.rastari.salar.mymetarialbank.adapter.TabsPagerAdapter; 


public class AccountsFragment extends FragmentActivity implements ActionBar.TabListener { 

    private ViewPager viewPager; 
    private TabsPagerAdapter mAdapter; 
    private ActionBar actionBar; 
    // Tab titles 
    private String[] tabs = {"Accounts Acctivity", "Chart Activity"}; 

    public AccountsFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_accounts, container, false); 

     // Initilization 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     actionBar = getActionBar(); 
     mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

     viewPager.setAdapter(mAdapter); 
     actionBar.setHomeButtonEnabled(false); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Adding Tabs 
     for (String tab_name : tabs) { 
      actionBar.addTab(actionBar.newTab().setText(tab_name) 
        .setTabListener(this)); 
     } 

     /** 
     * on swiping the viewpager make respective tab selected 
     * */ 
     viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 
       // on changing the page 
       // make respected tab selected 
       actionBar.setSelectedNavigationItem(position); 
      } 

      @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 
      } 
     }); 


     // Inflate the layout for this fragment 
     return rootView; 
    } 


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

    @Override 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
     // on tab selected 
     // show respected fragment view 
     viewPager.setCurrentItem(tab.getPosition()); 
    } 

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

и это TabsPagerAdapter: Я получаю эту ошибку:

Error:(25, 24) error: incompatible types: AccountsActivityFragment cannot be converted to Fragment

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import com.rastari.salar.mymetarialbank.activity.AccountsActivityFragment; 
import com.rastari.salar.mymetarialbank.activity.ChartActivity; 

public class TabsPagerAdapter extends FragmentPagerAdapter { 

    public TabsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int index) { 

     switch (index) { 
      case 0: 
       return new AccountsActivityFragment(); 

      case 1: 
       return new ChartActivity(); 

     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     // get item count - equal to number of tabs 
     return 2; 
    } 
} 

Я искал весь интернет, чтобы найти, как создать приложение с меню навигационного ящика и проведите пальцем по учебнику, но я ничего не нашел.

, пожалуйста, помогите, это очень важно для меня. спасибо.

+0

попробовать использовать только общие LIB (android.v4) или v7 –

ответ

0

Для вашего ActionBar Вы должны быть вызывающими getSupportActionBar() вместо getActionBar()

Для вашего фрагмента, убедитесь, что оба они расширяют android.support.v4.Fragment и не android.app.Fragment

+0

Я использовал android.support.v4.app.Fragment для всех и getSupportActionBar() не работает !! –

Смежные вопросы