Android 从1填充spiner2并能够选择spiner2值和toast选择
这就是我所拥有的 微调器1阵列Android 从1填充spiner2并能够选择spiner2值和toast选择,android,arrays,string,spinner,bind,Android,Arrays,String,Spinner,Bind,这就是我所拥有的 微调器1阵列 <!--for spinner 1--> <string-array name="Manu_array"> <item>Manu 1xsd</item> <item>Manu 2xrsd</item> <item>Manu 3x4rsd</item> </string-array> 手动1xsd 马努2xrsd Manu 3x4rsd 微调
<!--for spinner 1-->
<string-array name="Manu_array">
<item>Manu 1xsd</item>
<item>Manu 2xrsd</item>
<item>Manu 3x4rsd</item>
</string-array>
手动1xsd
马努2xrsd
Manu 3x4rsd
微调器2阵列
<!--for spinner 2-->
<string-array name="Manu 1xsd">
<item>a1</item>
<item>a2</item>
<item>a3</item>
<item>a4</item>
</string-array>
<string-array name="Manu 2xrsd">
<item>bg 1</item>
<item>bg 2</item>
</string-array>
<string-array name="Manu 3x4rsd">
<item>z1</item>
<item>z2</item>
<item>zd4</item>
<item>xs5</item>
<item>fg34</item>
</string-array>
a1
a2
a3
a4
bg 1
bg 2
z1
z2
zd4
xs5
fg34
所以旋转器1我会选择“Manu 3x4rsd”,然后旋转器2“xs5”,我会烤“Manu 3x4rsd”+“xs5”
微调器1选择的我的Java代码:
final Spinner[] spinner1 = {(Spinner) findViewById(R.id.Spinner1)};
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.Manu_array, R.layout.textview);
spinner1[0].setAdapter(adapter);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner1[0].setAdapter(adapter);
spinner1[0].setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
int index = arg0.getSelectedItemPosition();
// storing string resources into Array
Manu= getResources().getStringArray(R.array.Manu_array);
Toast.makeText(getBaseContext(), "You have selected : " + Manu[index],
Toast.LENGTH_SHORT).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// do nothing
}
});
final Spinner[]spinner1={(Spinner)findViewById(R.id.spinner1)};
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.Manu_数组,R.layout.textview);
喷丝头1[0]。设置适配器(适配器);
//指定显示选项列表时要使用的布局
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//将适配器应用于微调器
喷丝头1[0]。设置适配器(适配器);
喷丝头1[0]。setOnItemSelectedListener(新建AdapterView.OnItemSelectedListener()){
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
int index=arg0.getSelectedItemPosition();
//将字符串资源存储到数组中
Manu=getResources().getStringArray(R.array.Manu_数组);
Toast.makeText(getBaseContext(),“您已选择:”+Manu[index],
吐司。长度(短)。show();
}
未选择公共无效(AdapterView arg0){
//无所事事
}
});
Spinner 2选择的Java代码
final Spinner Spinner2= (Spinner) findViewById(R.id.Spinner2);
Spinner1[0].setOnItemSelectedListener(new adapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
int arrayId = 0;
switch (position) {//get array id according to selected position
case 0:
arrayId = R.array.Manu_1xsd_array;
break;
case 1:
arrayId = R.array.Manu_2xrsd;
break;
case 2:
arrayId = R.array.Manu_3x4rsd.array;
break;
};
ArrayAdapter<CharSequence> adapterL = ArrayAdapter.createFromResource(settings.this, arrayId, R.layout.textview);
Spinner1.setAdapter(adapterL);
String Spinner1 = Spinner1.getSelectedItem().toString();
Toast.makeText(getBaseContext(), "You have selected : " + Spinner1,
Toast.LENGTH_SHORT).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// do nothing
}
final Spinner Spinner2=(Spinner)findViewById(R.id.Spinner2);
喷丝头1[0]。setOnItemSelectedListener(新建adapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图selectedItemView、整型位置、长id){
int-arrayId=0;
开关(位置){//根据所选位置获取数组id
案例0:
arrayId=R.array.Manu_1xsd_数组;
打破
案例1:
arrayId=R.array.Manu_2xrsd;
打破
案例2:
arrayId=R.array.Manu_3x4rsd.array;
打破
};
ArrayAdapter Adapter=ArrayAdapter.createFromResource(settings.this、arrayId、R.layout.textview);
喷丝头1.设置适配器(适配器L);
字符串Spinner1=Spinner1.getSelectedItem().toString();
Toast.makeText(getBaseContext(),“您已选择:”+Spinner1,
吐司。长度(短)。show();
}
未选择公共无效(AdapterView arg0){
//无所事事
}
问题是,虽然我可以看到在微调器2中填充的值并滚动浏览它们,似乎我可以选择它们,但我没有代码来执行选择它们和生成toast的任何操作。我已尝试在微调器中创建一个侦听器,但我无法执行任何操作以使其按预期运行
因此,我怀疑我正在以完全错误的方式处理这个问题
一旦我可以烘烤微调器1和微调器2所选的值,我就应该能够将它们组合起来,从字符串列表中读取,并将它们组合起来生成一个命令
想要使用微调器来获得视觉效果,而不是仅仅为了选择所需的值而滚动一个巨大的列表。以下代码根据第一个微调器中选择的值填充第二个微调器,并在选择第二个微调器中的项目时显示toast
final Spinner s1= (Spinner) findViewById(R.id.Spinner1);
final Spinner s2= (Spinner) findViewById(R.id.Spinner2);
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Manu_array, R.layout.textview);
s1.setAdapter(adapter);
s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
int arrayId = 0;
switch (position) {//get array id according to selected position
case 0:
arrayId = R.array.Manu_1xsd_array;
break;
case 1:
arrayId = R.array.Manu_2xrsd;
break;
case 2:
arrayId = R.array.Manu_3x4rsd.array;
break;
}
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, arrayId, R.layout.textview);
s2.setAdapter(adapter);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String msg = s1.getSelectedItem().toString() + s2.getAdapter().getItem(position).toString();
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
final Spinner s1=(Spinner)findviewbyd(R.id.Spinner1);
最终喷丝器s2=(喷丝器)findViewById(R.id.喷丝器2);
最终ArrayAdapter adapter=ArrayAdapter.createFromResource(this,R.array.Manu_array,R.layout.textview);
s1.设置适配器(适配器);
s1.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
int-arrayId=0;
开关(位置){//根据所选位置获取数组id
案例0:
arrayId=R.array.Manu_1xsd_数组;
打破
案例1:
arrayId=R.array.Manu_2xrsd;
打破
案例2:
arrayId=R.array.Manu_3x4rsd.array;
打破
}
ArrayAdapter=ArrayAdapter.createFromResource(this,arrayId,R.layout.textview);
s2.设置适配器(适配器);
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
s2.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串msg=s1.getSelectedItem().toString()+s2.getAdapter().getItem(位置).toString();
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
再次感谢,很明显我把事情弄得太复杂了,我得把这个改成设置。这个,像个魔术师一样工作,非常感谢。