多个活动和片段中的相同微调器。这是实施它的最佳方式?

比方说,我有一个微调视图与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动态加载数据库条目,并使用onAttachedToWindowonDetachedFromWindow管理资源使用情况。

我平时做这个时候遇到类似的问题,很方便,易于开发和使用。

以上是 多个活动和片段中的相同微调器。这是实施它的最佳方式? 的全部内容, 来源链接: utcz.com/qa/260567.html

回到顶部