2014-10-20 46 views
0

我现在只需要som小帮手。该应用程序运行良好,但是当你进入前。 USD,2 TO SEK结果13,38。但是,如果我将金额更改为3,则什么都不会发生我将不得不来回改变现金来做出改变。我希望应用程序在更改值时立即更改结果。请帮帮忙!:)货币应用需求更新

package com.example.currencyconverter; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 


public class MainActivity extends Activity { 
private String [] currency_name; 
private ArrayAdapter<String> adapter; 
private Spinner spin1, spin2; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 



setUpTheSpinners(); 



} 
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     return true; 
    } 


private void setUpTheSpinners() { 
currency_name = getResources().getStringArray(R.array.currency_name); 
adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, currency_name); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
OnItemSelectedListener listener = new CurrencySelectedListener(); 
spin1 = (Spinner)findViewById(R.id.spinner1); 
spin1.setAdapter(adapter); 
spin1.setOnItemSelectedListener(listener); 
spin2 = (Spinner)findViewById(R.id.spinner2); 
spin2.setAdapter(adapter); 
spin2.setOnItemSelectedListener(listener); 
} 


private void calculateSum() { 
String [] rates = getResources().getStringArray(R.array.currency_rate); 
int index1 = spin1.getSelectedItemPosition(); 
int index2 = spin2.getSelectedItemPosition(); 
double rate1 = Double.parseDouble(rates[index1]); 
double rate2 = Double.parseDouble(rates[index2]); 

EditText editAmount = (EditText) findViewById(R.id.editText1); 
if (!TextUtils.isEmpty(editAmount.getText().toString())) { 
    double amount = Double.valueOf(editAmount.getText().toString()); 

    double totalRate = amount * rate1/rate2; 
    TextView totalRateText = (TextView)findViewById(R.id.editText2); 
    totalRateText.setText("" + totalRate); 

    } 




} 

private class CurrencySelectedListener implements OnItemSelectedListener { 

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
calculateSum(); 
} 

public void onNothingSelected(AdapterView<?> parent) { 
} 
} 
} 

回答

1

editAmount.getText().toString()值为NULL(空)。而你仍然试图将这个值转换成DOUBLE,所以你得到了NumberFormatException。解析像以前一样

检查EDITTEXT值:

if(!editAmount.getText().toString().equals("")) 
{ 
//Do your job 
} 

或者另一种方式是

if (!TextUtils.isEmpty(editAmount.getText().toString())) { 
//Do your job 
} 
+0

'NULL'或'null'东西比' “”':) – nhaarman 2014-10-20 13:33:38

+0

@NiekHaarman雅不同。编辑..thnx – 2014-10-20 13:33:47

+0

我很抱歉,但不真正了解。请你详细说明 – 2014-10-20 13:38:09