gpt4 book ai didi

android - 静态 Activity 生成器?

转载 作者:行者123 更新时间:2023-11-30 02:50:35 25 4
gpt4 key购买 nike

在我见过的一些 fragment 示例中,有一些静态方法可以从类中获取 fragment 的实例,这些方法具有参数(如 extras)而不传递变量。 This示例来自 developer.android.com 网站。

public static DetailsFragment newInstance(int index) {
DetailsFragment f = new DetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);
return f;
}

过去,当将额外的东西传递给新的新 Activity 时,我总是做如下的事情。

Intent newActivity = new Intent(this, NewActivity.class);
newActivity.putExtra(NewActivity.extra_1, extra_value);
startActivity(newActivity);

其中 NewActivity.extra_1 是值的公共(public)常量。

是否有任何理由不采用我在 fragment 中看到的相同构建器模式?这是我从未见过或无法找到答案的。为什么不创建类似的东西:

public static Intent instance(Context c, String extra1, long extra2){
Intent i = new Intent(c, NewActivity.class);
i.putExtra(EXTRA_1, extra1);
i.putExtra(EXTRA_2, extra2);
return i;
}

然后调用变成:

startActivity(NewActivity.instance(this, extra1, extra2);

额外的常量不需要公开,如果 Activity 需要新的额外常量,可以更改实例方法以便于重构,我认为它清理了 startActivity 调用。

我是不是迟到了?

最佳答案

我也想知道同样的事情,我的结论是这很可能是因为 Activity 在某种程度上是静态的;它们只是作为 fragment 的容器(这意味着要改变),当然,关于表示层,并且作为另一个 Activity 和它们托管的 fragment 之间的(某种)接口(interface)。我意识到我的问题:Is there a convention for creating, updating and passing data to Fragments or Activities in Android?

像这样:

A fragment (on modern UIs) is the ultimate part of the UI which holds the displayed data (though there's no rule for this, it's just a common practice).

但最后,对于应该如何创建 Activity 并没有明确的规则,只是因为 fragment 最常见的是根据数据在 Activity 之间传递而改变的 fragment ,所以更容易专注于构建方法 fragment 而不是 Activity 。

关于android - 静态 Activity 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253390/

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