Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

“No such method error” when using android.support.v4.app.FragmentActivity.getActionBar

I am trying navigation drawer in gingerbread everything working fine.When I click on navigation menu I am getting this exception.I added everything library,theme,drawer list. Actually I need getsupportActionBar() in fragment so how can I get it please help me.

code:

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;
    }
}

exception:

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)
like image 320
skyshine Avatar asked Jan 22 '26 03:01

skyshine


2 Answers

Your activity must extend ActionBarActivity instead of FragmentActivity (note that ActionBarActivity extends FragmentActivity - it just adds support for the action bar via getSupportActionBar()).

like image 143
ianhanniballake Avatar answered Jan 23 '26 19:01

ianhanniballake


I tried this code it is working fine

((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(rivers[position]);
like image 44
skyshine Avatar answered Jan 23 '26 21:01

skyshine



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!