RadiationX
@RadiationX
Front-End разработчик

Как реализовать наследование?

Я совсем-совсем начинающий, так что извиняюсь за неточности или какие-либо глупости.

Решил "перевести" приложение с holo на appcompat, приложение довольно-таки большое, поэтому пришлось изменять сам код.
Вместо import android.app.ActionBar вставил import android.support.v7.app.ActionBar, где-то поменял getActionBar() на getSupportActionBar(), но в некоторых файлах появились ошибки, и как я понял, они появились из-за "неправильного" наследования.

Файл в котором появились ошибки
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

import java.util.ArrayList;

import org.softeg.slartus.forpdaplus.listfragments.BaseBrickFragment;

public class NewsNavigationFragment extends BaseBrickFragment implements ActionBar.OnNavigationListener {

    //some code

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

        assert getActivity().getSupportActionBar() != null;
        getActivity().getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        getActivity().getSupportActionBar().setDisplayShowTitleEnabled(false);

        NavigationListAdapter listAdapter = new NavigationListAdapter(getActivity());
        getActivity().getSupportActionBar().setListNavigationCallbacks(listAdapter, this);

        getActivity().getSupportActionBar().setSelectedNavigationItem(Preferences.News.getLastSelectedSection());

    }

    //some code
}

Вот здесь ошибка с .getSupportActionBar()

Вот файлик BaseBrickFragment
import android.support.v4.app.Fragment;

import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.listtemplates.BrickInfo;

public abstract class BaseBrickFragment extends Fragment implements
//some code
}


И собсна как сделать чтобы всё правильно работало? чтоб наследовалось всё правильно.

p.s. код урезал, оставил только самое главное.
  • Вопрос задан
  • 2759 просмотров
Решения вопроса 1
@kamiLLxiii
Android-разработчик
О, снова 4pda =)
Проблема в том, что android.support.v4.app.Fragment#getActivity() возвращает класс FragmentActivty. А тебе нужен ActionBarActivty. Если ты уверен, что активити у фрагмента является ActionBarActivty, то можешь просто сделать каст
((ActionBarActivity)getActivity()).getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы