我想在我的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()
答案 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()
。