我有一些带有gridview 的片段,gridview 的内容是从数据库中的某个位置通过游标加载器决定的。因此,除了 db 查询之外,片段是相等的:我需要一种类似构造函数的方式来施加差异。我的解决方案是将参数放在一个包中,然后调用
Fragment.instantiate(this,clss.getName(), newTab.args)
其中 args 是一个包含 String-where 和 StringArray-whereArgs 的 Bundle 是正确的继续方式吗?
我有一些带有gridview 的片段,gridview 的内容是从数据库中的某个位置通过游标加载器决定的。因此,除了 db 查询之外,片段是相等的:我需要一种类似构造函数的方式来施加差异。我的解决方案是将参数放在一个包中,然后调用
Fragment.instantiate(this,clss.getName(), newTab.args)
其中 args 是一个包含 String-where 和 StringArray-whereArgs 的 Bundle 是正确的继续方式吗?
创建新片段的最佳方法是在片段中添加方法以进行实例化,例如以下:
public static DetailFragment newInstance(String id) {
DetailFragment fragment = new DetailFragment();
Bundle args = new Bundle();
args.putString(KEY_ITEM, id);
fragment.setArguments(args);
return(fragment);
}
然后,当您需要数据时,您可以执行以下操作:
this.getArguments().getString(KEY_ITEM);
是的,这种方法没有错,
您可以做的另一件事是在构造函数中传递 where 参数