2014-01-04 3 views
2

Я пробовал навигационный ящик в пряниках, все работает отлично. Когда я нажимаю на меню навигации, я получаю это исключение. Я добавил всю библиотеку, тема, список ящиков. На самом деле мне нужно getupportActionBar() в фрагменте, так как я могу получить его, пожалуйста, помогите мне.«Нет такой ошибки метода» при использовании android.support.v4.app.FragmentActivity.getActionBar

код:

public class RiverFragment extends Fragment{ 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     // Retrieving the currently selected item number 
     int position = getArguments().getInt("position"); 

     // List of rivers 
     String[] rivers = getResources().getStringArray(R.array.rivers); 

     // Creating view correspoding to the fragment 
     View v = inflater.inflate(R.layout.fragment_layout, container, false); 

     // Getting reference to the TextView of the Fragment 
     TextView tv = (TextView) v.findViewById(R.id.tv_content); 

     // Setting currently selected river name in the TextView 
     tv.setText(rivers[position]);  

     // Updating the action bar title 
     getActivity().getActionBar().setTitle(rivers[position]); 


     return v; 
    } 
} 

исключение:

01-04 11:47:21.601: E/AndroidRuntime(20537): FATAL EXCEPTION: main 
01-04 11:47:21.601: E/AndroidRuntime(20537): java.lang.NoSuchMethodError: android.support.v4.app.FragmentActivity.getActionBar 
01-04 11:47:21.601: E/AndroidRuntime(20537): at in.wptrafficanalyzer.navigationdrawerdemo.RiverFragment.onCreateView(RiverFragment.java:36) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.os.Handler.handleCallback(Handler.java:587) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.os.Looper.loop(Looper.java:130) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at android.app.ActivityThread.main(ActivityThread.java:3687) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at java.lang.reflect.Method.invokeNative(Native Method) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at java.lang.reflect.Method.invoke(Method.java:507) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
01-04 11:47:21.601: E/AndroidRuntime(20537): at dalvik.system.NativeStart.main(Native Method) 
+1

, которые библиотека вы добавили в проект приложения? – Andrain

+0

android-support-v7-appcompat – skyshine

ответ

6

Я попробовал этот код он работает нормально

((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(rivers[position]); 
+0

Но мой компилятор не распознает ActionBarActivity ?? –

+0

добавьте библиотеку appcoppat к вашему приложению – skyshine

+0

Я не использовал ** Actionbar Sherlock ** и искал альтернативы и нашел это решение для меня. – Pankaj

12

Ваша деятельность должна распространяться ActionBarActivity вместо FragmentActivity (обратите внимание, что ActionBarActivity расширяет FragmentActivity - это только добавляет поддержку для панели действий с помощью getSupportActionBar()).

1

Вы должны добавить ActionBarSherlock библиотеку Actionbar Sherlock for android

затем extends ваш фрагмент с SherlockFragment , то вы можете взять

getActivity().getSupportActionbar().setTitle(""); 

надеюсь, что это поможет.

+0

Невозможно использовать Actionbar Шерлок уже имеет ошибки при импорте в eclipse. –

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