使用 ViewPager 创建 master/detail 流
Creating master/detail flow with ViewPager
如何在选项卡 activity 中使用主详细信息流?
我有一个包含 3 页的查看寻呼机。我正在尝试使用 android studio 提供的 master/detail 流程作为视图寻呼机中的片段之一。
您可以尝试这样做:
- 将扩展从 Activity 更改为片段。
添加 onCreateView 方法并将 onCreate 中的所有内容移到那里,除了 super.onCreate()
和 setContentView():
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentActivity faActivity = (FragmentActivity) super.getActivity();
// Replace LinearLayout by the type of the root element of the layout you're trying to load
LinearLayout llLayout = (LinearLayout) inflater.inflate(R.layout.activity_layout, container, false);
// Of course you will want to faActivity and llLayout in the class and not this method to access them in the rest of
// the class, just initialize them here
// 这里是之前onCreate()的内容
// ...
// Don't use this method, it's handled by inflater.inflate() above :
// setContentView(R.layout.activity_layout);
// The FragmentActivity doesn't contain the layout directly so we must use our instance of LinearLayout :
llLayout.findViewById(R.id.someGuiElement);
// Instead of :
// findViewById(R.id.someGuiElement);
return llLayout; // We must return the loaded Layout
}
删除 onCreate 方法。
- 在任何地方,您都可以使用 this.something 访问 Activity 或仅用
super.getActivity()
替换某些内容。或使用保存在 onCreateView 中的值,如 2) 所示。示例:Intent i = getIntent();
变为 Intent i = super.getActivity().getIntent()
如何在选项卡 activity 中使用主详细信息流?
我有一个包含 3 页的查看寻呼机。我正在尝试使用 android studio 提供的 master/detail 流程作为视图寻呼机中的片段之一。
您可以尝试这样做:
- 将扩展从 Activity 更改为片段。
添加 onCreateView 方法并将 onCreate 中的所有内容移到那里,除了
super.onCreate()
和setContentView():
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentActivity faActivity = (FragmentActivity) super.getActivity(); // Replace LinearLayout by the type of the root element of the layout you're trying to load LinearLayout llLayout = (LinearLayout) inflater.inflate(R.layout.activity_layout, container, false); // Of course you will want to faActivity and llLayout in the class and not this method to access them in the rest of // the class, just initialize them here
// 这里是之前onCreate()的内容 // ...
// Don't use this method, it's handled by inflater.inflate() above : // setContentView(R.layout.activity_layout); // The FragmentActivity doesn't contain the layout directly so we must use our instance of LinearLayout : llLayout.findViewById(R.id.someGuiElement); // Instead of : // findViewById(R.id.someGuiElement); return llLayout; // We must return the loaded Layout
}
删除 onCreate 方法。
- 在任何地方,您都可以使用 this.something 访问 Activity 或仅用
super.getActivity()
替换某些内容。或使用保存在 onCreateView 中的值,如 2) 所示。示例:Intent i = getIntent();
变为Intent i = super.getActivity().getIntent()