getActionBar()未定义

时间:2012-10-28 14:34:15

标签: java android android-actionbar

我想在我的Fragment类中添加一个ActionBar,但是我一直都会遇到错误。这是我的班级:

public class TaskDetailFragment extends Fragment {

    public static final String ARG_ITEM_ID = "item_id";

    MyTasks.taskItem mItem;

    public TaskDetailFragment() {

    }

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

        if (getArguments().containsKey(ARG_ITEM_ID)) {
            mItem = MyTasks.ITEM_MAP.get(getArguments().getString(ARG_ITEM_ID));
        }
    }


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

        View rootView = inflater.inflate(R.layout.fragment_task_detail,
                container, false);

        ActionBar actionBar = getActionBar();
        actionBar.show();


        if (mItem != null) {
            //Add TexViews
            ((TextView) rootView.findViewById(R.id.in_Name))
                    .setText(MyTasks.customers[(Integer.parseInt(mItem.id))][1]);
            ((TextView) rootView.findViewById(R.id.in_Address))
                    .setText(MyTasks.customers[(Integer.parseInt(mItem.id))][3] + "  " + MyTasks.customers[(Integer.parseInt(mItem.id))][2]);

        }
        return rootView;
    }
}

这是我的错误:

  

对于TaskDetailFragment

类型,未定义方法getActionBar()

3 个答案:

答案 0 :(得分:12)

据我所知,您需要Activity Fragment ActionBar ActionBar actionBar = getActivity().getActionBar(); 询问ActionBar actionBar = getFragmentActivity().getSupportActionBar();

getActionBar()

或者,如果您正在使用支持库和/或ActionBarSherlock:

{{1}}

片段没有定义{{1}}方法,因此错误消息。

答案 1 :(得分:0)

确保getActionBar()在TaskDetailFragment或其他超类中定义,或者有时android emulataor可以将“protected”添加到方法的定义中

答案 2 :(得分:0)

如果某个片段想要使用ActionBar,则必须通常从setHasOptionsMenu(true)调用onCreate()