gpt4 book ai didi

android - 如何根据第二个微调器选择更新一个微调器

转载 作者:行者123 更新时间:2023-11-30 04:43:04 24 4
gpt4 key购买 nike

我必须基于微调器开发应用程序。

我已将 spinner1 作为产品选择,我必须为 spinner2 提供数据,该数据属于该特定产品类别,因此我必须更新 spinner2 基于 spinner1 的选择。

我进行了很多搜索,但我可以获得任何确定的示例代码或资源。

最佳答案

我同意 @user639183 的观点,有很多类似的问题......但是,有一些关于你如何做的解释:

  1. 为包含要显示的选项的数组创建成员变量。
  2. 用您的类别值填充您的第一个微调器。
  3. 使用 spinner1.setOnItemSelectedListener(...)
  4. 连接到 Spinner 的 OnItemSelected 事件
  5. 在事件监听器中,用相应的值填充第二个 Spinner。

步骤 1 的示例:

private String[] spinner1values = new String[] { "cat1", "cat2" };
private String[][] spinner2values = new String[][] {
new String[] { "a1", "b1", "c1" },
new String[] { "a2", "b2" }
};

spinner1的种群如下:

Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, spinner1values);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);

如果您阅读 Spinners 的文档和示例,到目前为止这一切都非常简单!

接下来,连接到 OnItemSelectedListener:

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// create a new adapter with the corresponding values
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(arg0.getContext(),
android.R.layout.simple_spinner_item, spinner2values[position]);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// set adapter
((Spinner)findViewById(R.id.spinner2)).setAdapter(adapter2);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// nothing selected, so set empty options
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(arg0.getContext(),
android.R.layout.simple_spinner_item, new String[0]);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
((Spinner)findViewById(R.id.spinner2)).setAdapter(adapter2);
}
});

请注意,spinner2values 中数组的顺序与类别值的顺序相对应!

关于android - 如何根据第二个微调器选择更新一个微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5592600/

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