gpt4 book ai didi

android - 如何在android中不使用参数传递值

转载 作者:行者123 更新时间:2023-11-29 14:14:55 25 4
gpt4 key购买 nike

我的应用程序中的 friend ,我想在中使用文本框值所有其他 Activity 不通过任何参数。怎么可能?任何人知道这些给我一个例子,在此先感谢。作者:Nallendiran.S

最佳答案

有几种不同的方法可以实现您的要求。

1.) 扩展应用程序类并在那里实例化您的 Controller 和模型对象。

public class FavoriteColorsApplication extends Application {

private static FavoriteColorsApplication application;
private FavoriteColorsService service;

public FavoriteColorsApplication getInstance() {
return application;
}

@Override
public void onCreate() {
super.onCreate();
application = this;
application.initialize();
}

private void initialize() {
service = new FavoriteColorsService();
}

public FavoriteColorsService getService() {
return service;
}

}

然后您可以随时从您的自定义 Application 对象调用您的单例:

公共(public)类 FavoriteColorsActivity 扩展 Activity {

private FavoriteColorsService service = null;
private ArrayAdapter<String> adapter;
private List<String> favoriteColors = new ArrayList<String>();

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

service = ((FavoriteColorsApplication) getApplication()).getService();
favoriteColors = service.findAllColors();

ListView lv = (ListView) findViewById(R.id.favoriteColorsListView);
adapter = new ArrayAdapter<String>(this, R.layout.favorite_colors_list_item,
favoriteColors);
lv.setAdapter(adapter);
}

2.) 你可以让你的 Controller 只创建一个它自己的单例实例:

public class Controller {
private static final String TAG = "Controller";
private static sController sController;
private Dao mDao;

private Controller() {
mDao = new Dao();
}

public static Controller create() {
if (sController == null) {
sController = new Controller();
}
return sController;
}
}

然后您可以从任何 Activity 或 Fragment 调用 create 方法,如果 Controller 不存在,它将创建一个新 Controller ,否则它将返回先前存在的 Controller 。

3.) 最后,Square 创建了一个灵活的框架,它为您提供了 Android 中的依赖注入(inject)。它叫做Dagger .我不会在这里讨论如何使用它,但如果您需要那种东西,它会非常灵活。

我希望我已就如何实现您的期望提供了足够的详细信息。

关于android - 如何在android中不使用参数传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23444260/

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