2014-10-20 51 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