I have an activity with three fragment classes inside it. I get an error when trying to change the action bar title from inside of them. If I try to make the classes just public and not public static I get an error when I try to start that class. It should be pretty clear that the code is for preferences although that shouldn't change anything . Here's the code:
package com.simon.wikiics;
import android.preference.*;
import android.os.*;
import java.util.*;
public class MainSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.headers, target);
}
//If I don't make the classes static my app force closes when I try to start them
public static class NavigationSettingsActivity extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.navigation);
//The getActionBar() is what is giving me the error
getActionBar().setTitle("Navigation");
}
}
public static class InterfaceSettingsActivity extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.interf);
//The getActionBar() is what is giving me the error
getActionBar().setTitle("Interface");
}
}
public static class OtherSettingsActivity extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.other);
//The getActionBar() is what is giving me the error
getActionBar().setTitle("Other");
}
}
}
@Robert Estivil
If you are using AppCompatActivity
then use this:
actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();