ActionBar + Fragments + Android 2.3

Интерфейс, диалоги, темы, стили, меню
Ответить
Jeka87x
Сообщения: 5
Зарегистрирован: 25 ноя 2013, 20:46

ActionBar + Fragments + Android 2.3

Сообщение Jeka87x » 06 дек 2013, 07:30

Подскажите пожалуйста, реально ли подключить ActionBar + Fragments + Android 2.3 ?

Если подключать библиотеку с фрагментами, то MainActivity необходимо наследовать FragmentActivity.
А если подключать библиотеку с ActionBar, то MainActivity необходимо наследовать ActionBarActivity.

Как выйти из этого положения ?

Код MainActivity.java

Код: Выделить всё

package info.androidhive.tabsswipe;
 
import info.androidhive.tabsswipe.adapter.TabsPagerAdapter;
import info.androidhive.tabsswipe.R;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
 
public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {
 
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Top Rated", "Games", "Movies" };
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // 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) {
            }
        });
    }
 
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }
 
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }
 
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }
 
}

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: ActionBar + Fragments + Android 2.3

Сообщение rezak90 » 06 дек 2013, 08:10

ActionBarActivity наследуется от FragmentActivity, так что переживать не стоит
R.id.team
Политика на форуме запрещена

Jeka87x
Сообщения: 5
Зарегистрирован: 25 ноя 2013, 20:46

Re: ActionBar + Fragments + Android 2.3

Сообщение Jeka87x » 07 дек 2013, 02:45

Если я подключаю библиотеки ActionBar + Fragments, а MainActivity наследую FragmentActivity, то возникает ошибка в строке actionBar = getActionBar(); Type mismatch: cannot convert from android.app.ActionBar to android.support.v7.app.ActionBar (см. скришот).

По идее нужно написать так: actionBar = getSupportActionBar();
Но тогда необходимо MainActivity наследовать ActionBarActivity, поскольку getSupportActionBar() это метод ActionBarActivity (android.support.v7.app.ActionBarActivity.getSupportActionBar());
Но в этом случае я не смогу работать с фрагментами. Вот и получается какой-то "замкнутый круг".

Перепробовал уже кучу вариантов, примеров, но ответа так и не нашел. Если кто-то реализовывал что-то подобное, выложите пример, пожалуйста, очень надо!

ИзображениеИзображение

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: ActionBar + Fragments + Android 2.3

Сообщение klblk » 07 дек 2013, 05:54

Вы читали что написали выше?
Или слово "наследуется" не понятно? Тогда стоит повременить с Android'ом и подучить основы ООП.
Но в этом случае я не смогу работать с фрагментами.
Даже не проверили же?

Ответить