微调开关外壳问题 [英] Spinner Switch Case Problem
问题描述
编辑:我已经添加了我所有的code(不包括包装,进口......),如果我尝试它崩溃运行......任何想法,为什么
? 公共类BaseConverter延伸活动{
/ **第一次创建活动时调用。 * /
INT inputBase;
INT outputBase;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
微调input_spinner =(微调)findViewById(R.id.InputSpinner);
微调output_spinner =(微调)findViewById(R.id.OutputSpinner);
ArrayAdapter< CharSequence的>适配器= ArrayAdapter.createFromResource(
对此,R.array.base_numbers_array,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
input_spinner.setAdapter(适配器);
output_spinner.setAdapter(适配器);
input_spinner.setOnItemSelectedListener(新InputItemSelectedListener());
output_spinner.setOnItemSelectedListener(新OutputItemSelectedListener());
}
公共类InputItemSelectedListener实现OnItemSelectedListener {
公共无效onItemSelected(适配器视图<>父,
视图中查看,INT POS,长ID)
{
/ *开关(的Integer.parseInt(parent.getItemAtPosition(POS)的ToString())
案((整数)parent.getItemAtPosition(POS))的intValue()。
inputBase = 2;
打破;
案例8:
inputBase = 8;
打破;
案例10;
inputBase = 10;
打破;
案例16;
inputBase = 16;
打破;
* /
Toast.makeText(parent.getContext(),你选择的输入基地+
parent.getItemAtPosition(POS)的ToString(),Toast.LENGTH_SHORT).show();
}
公共无效onNothingSelected(适配器视图父)
{
// 没做什么。
}
}
公共类OutputItemSelectedListener实现OnItemSelectedListener {
公共无效onItemSelected(适配器视图<>父,
视图中查看,INT POS,长ID){
Toast.makeText(parent.getContext(),你所选的输出基地+
parent.getItemAtPosition(POS)的ToString(),Toast.LENGTH_SHORT).show();
}
公共无效onNothingSelected(适配器视图父){
// 没做什么。
}
}
}
,现在需要有一个开关 - 这一切围绕着什么样的价值,他们选择了它的情况。它们都是数字(的选择),并存储在一个整数数组。我如何设置一个开关的情况下是否正确?我试图做一个简单的事情,像
情况下((的Integer.parseInt(parent.getItemAtPosition(POS)的ToString())
所以,我理解了它。你需要做的阵列的字符串数组及使用: ArrayAdapter适配器=新的ArrayAdapter
等.....
然后用
的Integer.parseInt(parent.getItemAtPosition(位置)的ToString());
要找到任何你选择的数值。注意:它必须是所有的数值或者它会给你一个错误
EDIT: i have added in all of my code (excluding package and imports.....) and if i try to run it it crashes...... any ideas why?
public class BaseConverter extends Activity {
/** Called when the activity is first created. */
int inputBase;
int outputBase;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner input_spinner = (Spinner) findViewById(R.id.InputSpinner);
Spinner output_spinner = (Spinner) findViewById(R.id.OutputSpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.base_numbers_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
input_spinner.setAdapter(adapter);
output_spinner.setAdapter(adapter);
input_spinner.setOnItemSelectedListener(new InputItemSelectedListener());
output_spinner.setOnItemSelectedListener(new OutputItemSelectedListener());
}
public class InputItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id)
{
/* switch (Integer.parseInt(parent.getItemAtPosition(pos).toString())
case ((Integer)parent.getItemAtPosition(pos)).intValue();
inputBase = 2;
break;
case 8:
inputBase = 8;
break;
case 10;
inputBase = 10;
break;
case 16;
inputBase = 16;
break;
*/
Toast.makeText(parent.getContext(), "You selected input base " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();
}
public void onNothingSelected(AdapterView parent)
{
// Do nothing.
}
}
public class OutputItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Toast.makeText(parent.getContext(), "You selected output base " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
}
and now need to have a switch - case scenario that all revolves around what the value they selected it. they are all numbers (the choices) and are stored in an Integer array. How do i set up that switch-case correctly? i tried doing a simple thing like
case ((Integer.parseInt(parent.getItemAtPosition(pos).toString())
So i figured it out. you need to make the array a STRING array and the use: ArrayAdapter adapter = new ArrayAdapter
etc.....
then use
Integer.parseInt(parent.getItemAtPosition(position).toString());
to find the numerical value of whatever you selected. NOTE: it must be all numerical or it will give you an error.
这篇关于微调开关外壳问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!