我正在尝试创建一个使用片段的应用程序,但是当我尝试在Fragment
中显示FragmentActivity
时,操作栏中没有显示。
FragmentActivity类:
public class NoteDetailsActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_details_fragment);
if (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE) {
// If the screen is now in landscape mode, we can show the
// dialog in-line with the list so we don't need this activity.
finish();
return;
}
if (savedInstanceState == null) {
// During initial setup, plug in the details fragment.
NoteDetailsFragment details = new NoteDetailsFragment();
details.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction().add(R.id.note_details, details).commit();
}
}
}
片段类:
public class NoteDetailsFragment extends Fragment {
/**
* Create a new instance of DetailsFragment, initialized to
* show the text at 'index'.
*/
public static NoteDetailsFragment newInstance(int index) {
NoteDetailsFragment f = new NoteDetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);
return f;
}
public int getShownIndex() {
return getArguments().getInt("index", 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}
int index = getArguments().getInt("index");
String message = "";
switch (index) {
case 0:
message = "Start";
break;
case 1:
message = "Second";
break;
case 2:
message = "last";
break;
}
TextView text = new TextView(getActivity());
text.setText(message);
return text;
}
}
我已尝试在onCreateOptionsMenu
课程中实施FragmentActivity
,但没有任何反应。我也尝试过Fragment类中的setHasOptionsMenu(true)
,但这也没有做任何事情。
如果感兴趣的话,这里是我插入Fragment
(note_details_fragment)的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_margin="@dimen/activity_vertical_margin"
android:layout_height="match_parent">
<FrameLayout
android:layout_above="@id/save_note"
android:id="@+id/note_details"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="?android:attr/detailsElementBackground" />
<Button
android:id="@+id/save_note"
android:layout_alignParentBottom="true"
android:text="@string/save"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
编辑: 从清单:
<activity android:name=".activities.NoteDetailsActivity">
</activity>
答案 0 :(得分:2)
从课程ActionBarActivity
而不是FragmentAcivity
派生可以解决您的问题:
public class NoteDetailsActivity extends ActionBarActivity {
// ...
}