Android 使用用户选择的spinnerA中的两个数组(来自string.xml)之一填充spinnerB
我整晚都在做这件事,脑子里一片迷雾。有谁能给我一个代码snipit,它可以帮助我在创建时填充SpinnerA:Android 使用用户选择的spinnerA中的两个数组(来自string.xml)之一填充spinnerB,android,eclipse,android-spinner,Android,Eclipse,Android Spinner,我整晚都在做这件事,脑子里一片迷雾。有谁能给我一个代码snipit,它可以帮助我在创建时填充SpinnerA: ArrayAdapter adapterTypeGas=ArrayAdapter.createFromResource( 这个,R.array.TypeGas,android.R.layout.simple\u微调器\u项); adapterTypeGas.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项); 喷
ArrayAdapter adapterTypeGas=ArrayAdapter.createFromResource(
这个,R.array.TypeGas,android.R.layout.simple\u微调器\u项);
adapterTypeGas.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头类型气体。设置适配器(适配器类型气体)代码>
R.array.TypeGas有两种选择:“丙烷气”或“天然气”。根据用户的选择,我希望SpinnerB使用R.array.NaturalGas或R.array.propanagas。我的问题是,微调器是在创建时填充的。如何更改它,使其在选择微调器后才填充?谢谢你的帮助。我是一个相当新的发展,所以如果你能在你的答案,这将是伟大的细节
在实现了“Rastedestoryer”中的代码之后,我在spinnerB的ArrayAdapter的“createFromResource”中得到了一个错误。错误是:类型ArrayAdapter中的方法createFromResource(Context,int,int)不适用于参数(CSSTPipeSizingActivity.OnAssectedListener,int,int)。在main.xml文件中,我必须为spinnerB指定一个数组(该数组存储在strings.xml文件中)使用。我认为这就是问题所在,因为在我的代码中,我告诉它一个不同的数组。关于如何解决这个问题有什么想法吗?在整个类中添加一个选定的侦听器
public class OnGasSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
//set all of spinnerB adapter stuff here
}
public void onNothingSelected(AdapterView<?> parent) {}
}
onitemselected将在构建微调器之后立即触发,并且每次用户更改选择时公共类MainActivity extends活动都会实现OnItemSelectedListener{
public class MainActivity extends Activity implements OnItemSelectedListener{
Spinner chooseproject,choosetask;
public static ArrayList<String>projectnameList,propanegasList,naturalgaslist;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
projectnameList=new ArrayList<String>();
propanegasList=new ArrayList<String>();
naturalgaslist=new ArrayList<String>();
projectnameList.add("Propane Gas");
projectnameList.add("Natural Gas");
propanegasList.add("p1");
propanegasList.add("p2");
propanegasList.add("p3");
propanegasList.add("p4");
propanegasList.add("p5");
naturalgaslist.add("n1");
naturalgaslist.add("n2");
naturalgaslist.add("n3");
naturalgaslist.add("n4");
naturalgaslist.add("n5");
chooseproject=(Spinner)findViewById(R.id.chooseproject_dropdown);
choosetask=(Spinner)findViewById(R.id.choosetask_dropdown);
chooseproject.setOnItemSelectedListener(this);
ArrayAdapter<String> projectName=new ArrayAdapter<String>
(this,R.layout.dropdow_spinner_dropdown_item,projectnameList);
projectName.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
chooseproject.setAdapter(projectName);
choosetask.setOnItemSelectedListener(this);
}
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg0.getId())
{
case R.id.chooseproject_dropdown:
String ProjectName=chooseproject.getSelectedItem().toString();
if(ProjectName.equalsIgnoreCase("Propane Gas")
{
ArrayAdapter<String> projectTask=new ArrayAdapter<String>
(this,R.layout.dropdow_spinner_dropdown_item,propanegasList);
projectTask.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
choosetask.setAdapter(projectTask);
}
else
{
ArrayAdapter<String> projectTask=new ArrayAdapter<String>
(this,R.layout.dropdow_spinner_dropdown_item,naturalgaslist);
projectTask.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
choosetask.setAdapter(projectTask);
}
}
break;
case R.id.choosetask_dropdown:
String ProjectTaskName=choosetask.getSelectedItem().toString();
break;
}
}
}
微调器选择项目,选择任务;
公共静态阵列项目名称列表、propanegasList、自然列表;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
projectnameList=新的ArrayList();
propanegasList=新的ArrayList();
naturalgaslist=新的ArrayList();
项目名称列表。添加(“丙烷气”);
项目名称列表。添加(“天然气”);
propanegasList.添加(“p1”);
propanegasList.添加(“p2”);
propanegasList.添加(“p3”);
propanegasList.添加(“p4”);
propanegasList.添加(“p5”);
自然列表。添加(“n1”);
自然列表。添加(“n2”);
自然列表。添加(“n3”);
自然列表。添加(“n4”);
自然列表。添加(“n5”);
chooseproject=(微调器)findViewById(R.id.chooseproject\u下拉列表);
choosetask=(微调器)findViewById(R.id.choosetask_下拉列表);
选择project.setOnItemSelectedListener(此);
ArrayAdapter项目名称=新建ArrayAdapter
(这是R.layout.dropdow\u微调器\u下拉项\u项目名称列表);
projectName.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
选择project.setAdapter(projectName);
选择Task.setOnItemSelectedListener(此);
}
已选择公共视图(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
开关(arg0.getId())
{
案例R.id.chooseproject\u下拉列表:
String ProjectName=chooseproject.getSelectedItem().toString();
if(项目名称、同等信号(“丙烷气”)
{
ArrayAdapter项目任务=新建ArrayAdapter
(这是R.layout.dropdow\u微调器\u dropdown\u项目,propanegasList);
projectTask.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
选择setTask.setAdapter(项目任务);
}
其他的
{
ArrayAdapter项目任务=新建ArrayAdapter
(此,右布局。dropdow\u微调器\u dropdown\u项目,自然列表);
projectTask.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
选择setTask.setAdapter(项目任务);
}
}
打破
案例R.id.choosetask_下拉列表:
String ProjectTaskName=ChoosetTask.getSelectedItem().toString();
打破
}
}
}
这是我最后使用的代码:
public void main program () {
...
ArrayAdapter<CharSequence> adapterTypeGas = ArrayAdapter.createFromResource(
this, R.array.TypeGas, android.R.layout.simple_spinner_item);
adapterTypeGas.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerTypeGas.setAdapter(adapterTypeGas);
//Sets up the spinnerPipeLength spinner
ArrayAdapter<CharSequence> adapterPipeLength = ArrayAdapter.createFromResource(
this, R.array.PipeLength, android.R.layout.simple_spinner_item);
adapterPipeLength.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPipeLength.setAdapter(adapterPipeLength);
// Listens for changes in the selected item in each spinner
spinnerTypeGas.setOnItemSelectedListener(new GASOnItemSelectedListener());
spinnerSupplyPressure.setOnItemSelectedListener(new SupplyOnItemSelectedListener());
spinnerPipeLength.setOnItemSelectedListener(new MyOnItemSelectedListener());
...
} // end mainprogram()
public void SpinnerNatGas() {
ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
this, R.array.NaturalGas, android.R.layout.simple_spinner_item);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSupplyPressure.setAdapter(adapterSupplyPressure);
adapterSupplyPressure.notifyDataSetChanged();
} // end SpinnerNatGAs ()
public void SpinnerProGas () {
ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
this, R.array.PropaneGas, android.R.layout.simple_spinner_item);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSupplyPressure.setAdapter(adapterSupplyPressure);
adapterSupplyPressure.notifyDataSetChanged();
} // end SpinnerProGAs ()
public void主程序(){
...
ArrayAdapter adapterTypeGas=ArrayAdapter.createFromResource(
这个,R.array.TypeGas,android.R.layout.simple\u微调器\u项);
adapterTypeGas.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头类型气体。设置适配器(适配器类型气体);
//设置喷丝器PipeLength喷丝器
ArrayAdapter adapterPipeLength=ArrayAdapter.createFromResource(
这个,R.array.PipeLength,android.R.layout.simple\u微调器\u项);
adapterPipeLength.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头管道长度。设置适配器(适配器管道长度);
//侦听每个微调器中选定项目的更改
spinnerTypeGas.setOnItemSelectedListener(新的GASOnItemSelectedListener());
喷丝头供应压力。setOnItemSelectedListener(新供应项目SelectedListener());
spinnerPipeLength.setOnItemSelectedListener(新的MyOnItemSelectedListener());
...
}//结束mainprogram()
公共真空喷丝头气体(){
ArrayAdapter适配器供应压力=ArrayAdapter.createFromResource(
这个,R.array.NaturalGas,android.R.layout.simple\u微调器\u项);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头供应压力。设置适配器(适配器供应压力);
适配器供应压力。notifyDataSetChanged();
}//端喷丝头气体()
公共空间喷丝头程序(){
ArrayAdapter适配器供应压力=ArrayAdapter.createFromResource(
这个,R.array.PropaneGas,android.R.layout.simple\u微调器\u项);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转
public void main program () {
...
ArrayAdapter<CharSequence> adapterTypeGas = ArrayAdapter.createFromResource(
this, R.array.TypeGas, android.R.layout.simple_spinner_item);
adapterTypeGas.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerTypeGas.setAdapter(adapterTypeGas);
//Sets up the spinnerPipeLength spinner
ArrayAdapter<CharSequence> adapterPipeLength = ArrayAdapter.createFromResource(
this, R.array.PipeLength, android.R.layout.simple_spinner_item);
adapterPipeLength.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPipeLength.setAdapter(adapterPipeLength);
// Listens for changes in the selected item in each spinner
spinnerTypeGas.setOnItemSelectedListener(new GASOnItemSelectedListener());
spinnerSupplyPressure.setOnItemSelectedListener(new SupplyOnItemSelectedListener());
spinnerPipeLength.setOnItemSelectedListener(new MyOnItemSelectedListener());
...
} // end mainprogram()
public void SpinnerNatGas() {
ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
this, R.array.NaturalGas, android.R.layout.simple_spinner_item);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSupplyPressure.setAdapter(adapterSupplyPressure);
adapterSupplyPressure.notifyDataSetChanged();
} // end SpinnerNatGAs ()
public void SpinnerProGas () {
ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
this, R.array.PropaneGas, android.R.layout.simple_spinner_item);
adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSupplyPressure.setAdapter(adapterSupplyPressure);
adapterSupplyPressure.notifyDataSetChanged();
} // end SpinnerProGAs ()