我有一些带有gridview的片段,gridview内容是从db中的某个位置决定的,通过一个游标加载器。 因此,除了db查询之外,片段是相同的:我需要一种类似构造函数的方法来强加差异。 我的解决方案是将参数放在一个包中,然后调用
Fragment.instantiate(this,clss.getName(), newTab.args)
其中args是包含String-where和StringArray-whereArgs的Bundle,它是正确的进行方式吗?
答案 0 :(得分:2)
创建新片段的最佳方法是在片段中添加一个用于实例化的方法,例如:
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);
答案 1 :(得分:0)
你可以做的另一件事就是传递构造函数中的where args