【发布时间】:2016-04-11 04:54:05
【问题描述】:
编辑:不知道为什么这被否决了,我在动态询问 使新的微调器不在布局中。
我试图找出处理生成多个微调器的最佳方法,动态地使用单独的适配器和侦听器。这是交易,我提供所需的微调器数量(取决于从 1-10 个额外微调器 IE 中选择的类别:汽车制造型号年份、鞋子:尺寸、颜色等...)服务器端。我如何解释这一点,动态创建它们并获得用户选择?这甚至可能吗?
我在看:
【问题讨论】:
编辑:不知道为什么这被否决了,我在动态询问 使新的微调器不在布局中。
我试图找出处理生成多个微调器的最佳方法,动态地使用单独的适配器和侦听器。这是交易,我提供所需的微调器数量(取决于从 1-10 个额外微调器 IE 中选择的类别:汽车制造型号年份、鞋子:尺寸、颜色等...)服务器端。我如何解释这一点,动态创建它们并获得用户选择?这甚至可能吗?
我在看:
【问题讨论】:
您需要创建一个类来创建这样的视图。但是您需要为您的活动设置某种布局,其中包含一个空的 LinearLayout 或您想要的任何内容。例如,如果您创建一个用于创建微调器的类,它应该如下所示。
public class MyViewController {
private Context context;
public MyViewController(Context context) {
this.context = context;
}
public Spinner getSpinner() {
return new Spinner(context);
}
public ArrayAdapter getAdapter(int resId, String[] values) {
return new ArrayAdpter(context, resId, values);
}
}
现在在您的 Activity 或 Fragment 或其他类中,您可以执行类似的操作。
public class MainActivity extends Activity {
private LinearLayout mainLayout;
private String[] values = {"Hello", "Java", "Android"};
private String[] values2 = {"Hmmm", "OK", "Bye"};
private MyViewController myViewController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainLayout = (LinearLayout) findViewById
(R.id.main_linear_layout);
myViewController = new MyViewController(this);
LinearLayout.LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 5, 0, 5);
for (int i = 0; i < 10; ++i) {
Spinner spin = myViewController.getSpinner();
ArrayAdapter adapter;
if (i % 2 == 0) {
adapter = myViewController.getAdapter(R.layout.my_custom_style, values);
} else {
adapter = myViewController.getAdapter(R.layout.my_custom_style, values2);
}
spin.setAdapter(adapter);
mainLayout.addView(spin, params);
}
}
}
【讨论】:
将每个微调器的值存储在 SQLite 数据库中,这样您就可以在本地查询它。
【讨论】: