gpt4 book ai didi

android - 将参数传递给 fragment

转载 作者:太空狗 更新时间:2023-10-29 16:39:30 24 4
gpt4 key购买 nike

我有一个包含两个 fragment 的大型布局文件:列表 fragment 和详细信息 fragment 。列表 fragment 应根据传递给 Activity 的 TYPE 参数列出不同的数据。问题是,当我在 Activity 的 onCreate() 方法中调用 setContentView() 方法时,会创建 fragment ,但我无法将此参数传递给它。代码:

公共(public)类 VideoPlayerActivity 扩展 FragmentActivity {

Type type;
MyListFragment listFragment;
FragmentManager fragmentManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);

fragmentManager = getSupportFragmentManager();

Bundle extras = getIntent().getExtras();
if (extras != null && extras.containsKey(Constants.KEY_TYPE)) {
int type = extras.getInt(Constants.KEY_TYPE);
type = Type.getTypeByValue(type);
}

if (findViewById(R.id.fragment_container) != null) {
// Normal Screen Layout
if (savedInstanceState != null) {
return;
}
listFragment = new MyListFragment();
getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, listFragment).commit();
} else {
// Large Screen layout
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
listFragment = (MyListFragment) fragmentManager.findFragmentById(R.id.listFragment);
}

}

如果我 new Activity ,我可以在其 onAttach() 方法上调用一个方法来获取参数,但在这个例子中,我在 xml 布局中定义了 fragment ,它们在 Activity 创建时初始化。你有什么想法吗?

最佳答案

您可以创建一个Bundle 并使用setArguments() 函数将其传递给 fragment 。然后这个 Bundle 可以从 getArguments() 函数中获得。

文档:http://developer.android.com/reference/android/app/Fragment.html#getArguments()

关于android - 将参数传递给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20359589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com