我正试图在一项活动中实施多个纺纱工,看起来工作正常。我遇到的问题是当我试图使用onItemSelected输出他们的选项时,我无法弄清楚如何告诉这个方法哪个微调器刚刚更新。我将复制代码,但这里是onItemSelected方法的摘录。例如,如果我有两个旋转器,只会显示intTypeItems微调器的结果。如何访问onItemSelected中的不同数组数据?
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
selection.setText(intTypeItems[position]);
}
这是我正在使用的完整课程。
public class Calculator extends Activity implements AdapterView.OnItemSelectedListener {
private TextView selection;
private static final Integer[] intNoItems={1,2,3};
//private static final String[] intNoItems={"one","two","three"};
private static final String[] intTypeItems={"Seconds","Minutes","Hours","Days"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculator);
Spinner intNo=(Spinner)findViewById(R.id.intervalNo);
Spinner intType=(Spinner)findViewById(R.id.intervalType);
intNo.setOnItemSelectedListener(this);
intType.setOnItemSelectedListener(this);
selection=(TextView)findViewById(R.id.outPutValues);
ArrayAdapter<Integer> intNolist=new ArrayAdapter<Integer>(this, android.R.layout.simple_spinner_item,intNoItems);
ArrayAdapter<String> intTypelist=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,intTypeItems);
intNolist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
intTypelist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
intNo.setAdapter(intNolist);
intType.setAdapter(intTypelist);
}
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
selection.setText(casting + intTypeItems[position]);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
其中一个spinners是一个int另一个字符串,所以当输出到我的选择文本视图时,我还需要将int转换为字符串。我又不知道该怎么做,因为当字符串获得回调时,转换会导致异常?
我喜欢这个想法,看起来像我明白的代码,对我来说这很好,因为这个Java很混乱!无论如何,我已经尝试过,但我的Eclipse抱怨intNo和intType没有被解析为变量? – Purplemonkey 2012-02-09 17:02:48
这就是为什么我说“如果你把这些变量保存为字段”。看到'私人TextView选择;'线?创建'Spinner intNo;'和'Spinner intType;'在那里,并将您的'onCreate()'中的用法更改为'intNo =(Spinner)findViewById(R.id.intervalNo);' – 2012-02-09 17:19:51
真棒,抱歉,我不知道什么变量作为字段的意思,但从你的答复的其余部分我明白了什么是错误的,我需要将intNo和intType字符串的声明移到我的方法之外(我在这里学习)无论如何,我已经做到了这一点,它的工作原理一种享受。非常感谢。现在到数学:) – Purplemonkey 2012-02-09 17:38:00