我的应用程序中的 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/