多个活动和片段中的相同微调器。这是实施它的最佳方式?
比方说,我有一个微调视图与10个国家(字符串)。 我想在多个活动,片段,警戒对话等中使用此微调器。多个活动和片段中的相同微调器。这是实施它的最佳方式?
我该如何有效地做到这一点,并节省代码行?哪种方法最好?
我首先想到的是创建一个创建微调控件并且扩展微调控件类的类。然后创建对象等。然而,作为一个begginer,它看起来有点复杂,有没有更简单的方法?
编辑: 微调框是动态创建的。它默认有10个项目,但会根据数据库条目逐渐填充。
回答:
在任何类中创建一个公共静态方法(但可能是一个直观的查找*)来填充微调器。它可以将上下文,数据库等作为输入,以及Spinner本身。然后,您可以从任何片段或活动调用相同的方法,并始终获得相同的结果。只需创建您的布局(例如setContentView
),从布局中获取对微调器的引用,并将其传递给您的populater方法。
例子:
//in Activity public void onCreate(Bundle bundle){
super.onCreate(bundle);
DatabaseHelper myDataBaseHelper = ...;//
setContentView(R.layout.my_layout);
Spinner spinner = (Spinner)findViewById(R.id.my_spinner);
Util.populateStandardSpinner(myDataBaseHelper, spinner,
getApplicationContext());
//...
}
//Another class
public class Util{
public static void populateStandardSpinner(DatabaseHelper dbHelper,
Spinner spinner, Context context) {
//Get cursor from dbHelper
//Create adapter for cursor data and apply it to spinner
}
我想你还可以扩展微调类,但我的偏好是为了避免直接的数据编码到小工具。这将打破模型 - 视图 - 控制器设计模式。
*我有时候只是创建一个名为Util的类,我在这里放置了方便的静态方法。或者如果你有一个数据库辅助类,那可能是一个直观的地方。
回答:
您可以为此创建一个单独的布局文件,并且只有微调器在此。
无论你需要这个你可以在你的布局,包括像
<include layout="@layout/spinnerLayout" />
回答:
扩展微调类本身。
您可以在构造函数内初始化适配器,使用AsyncTask
动态加载数据库条目,并使用onAttachedToWindow
和onDetachedFromWindow
管理资源使用情况。
我平时做这个时候遇到类似的问题,很方便,易于开发和使用。
以上是 多个活动和片段中的相同微调器。这是实施它的最佳方式? 的全部内容, 来源链接: utcz.com/qa/260567.html