Java 除以两个微调器值
我已经设法让微调器值显示在文本框上,但我需要将这些值彼此分开。所以我必须将微调器1的值除以微调器2的值。然而,我不确定如何做到这一点 这是我的密码:Java 除以两个微调器值,java,android,spinner,Java,Android,Spinner,我已经设法让微调器值显示在文本框上,但我需要将这些值彼此分开。所以我必须将微调器1的值除以微调器2的值。然而,我不确定如何做到这一点 这是我的密码: public class CurrencyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.
public class CurrencyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currency);
final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final EditText etResult = (EditText) findViewById(R.id.etResult);
final MyData items[] = new MyData[3];
items[0] = new MyData("EUR, Euro","1.00");
items[1] = new MyData("GBP, British Pound","5.00");
items[2] = new MyData("USD, US Dollar","15.00");
ArrayAdapter<MyData> adapter = new ArrayAdapter <MyData>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
etResult.setText(d.getValue());
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
etResult.setText(d.getValue());
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
谢谢有一个简单的解决方案,但我认为您在这里混合了代码。 Integer.parseIntd.getValue将为您提供一个有效的int,您可以对其执行任何数学函数,但在您的代码中,当每个微调器选择发生更改时,您实际上会覆盖MyData d。
您可以在MyData类中添加另一个字段,该字段将存储您想要的任何值作为int,然后简单地使用MyData.getVal,假设MyData的类型为/class MyData。我能够解决这个问题 我将MyData类中的值类型从String更改为double。 我在CurrencyActivity中创建了两个名为valA和valB的双字段 然后在方法中,我将微调器的值指定给val字段,例如。 valA=d.getValue 然后我创建了一个新的方法,只做了valA/valB 下面的代码有助于更容易理解
public class CurrencyActivity extends Activity {
double valA;
double valB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currency);
final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final EditText etResult = (EditText) findViewById(R.id.etResult);
final MyData items[] = new MyData[3];
items[0] = new MyData("EUR, Euro",1);
items[1] = new MyData("GBP, British Pound",5);
items[2] = new MyData("USD, US Dollar",15);
ArrayAdapter<MyData> adapter = new ArrayAdapter <MyData>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
valA=d.getValue();
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
valB = d.getValue();
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
public void divideVals(){
double result = valA / valB;
etResult.setText(String.valueOf(result));
}
希望这对其他人有所帮助,因为我花了很长时间才弄明白这一点,结果非常简单。与你之前的问题和这一点有关吗?@Raghunandan是的,但我取得了一点进步。另一个解决方案对我不起作用。谢谢你,你的解决方案帮助我朝着正确的方向前进。我在CurrencyActivity中又创建了两个双字段,例如valA和valB,然后valA=d.getValue,然后我创建了一个方法,只做了valA/valB;
public class CurrencyActivity extends Activity {
double valA;
double valB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currency);
final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
final EditText etResult = (EditText) findViewById(R.id.etResult);
final MyData items[] = new MyData[3];
items[0] = new MyData("EUR, Euro",1);
items[1] = new MyData("GBP, British Pound",5);
items[2] = new MyData("USD, US Dollar",15);
ArrayAdapter<MyData> adapter = new ArrayAdapter <MyData>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
valA=d.getValue();
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
MyData d = items[pos];
valB = d.getValue();
}
@Override
public void onNothingSelected(AdapterView parent){
//Do nothing
}
});
public void divideVals(){
double result = valA / valB;
etResult.setText(String.valueOf(result));
}