微调开关外壳问题 [英] Spinner Switch Case Problem

查看:100
本文介绍了微调开关外壳问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

编辑:我已经添加了我所有的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,长I​​D)
        {
        / *开关(的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,长I​​D){
      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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆