2017-05-26 4 views
0

Donc j'essaye d'avoir un spinner où vous choisissez une devise à convertir de GBP, entrez une valeur en GBP et convertissez à la devise choisie du spinner en appuyant sur un bouton. La valeur convertie apparaît alors dans le textview ci-dessousAndroid Studio plusieurs nombres avec sélection de spinner

enter image description here

Voici le code suivant je dans l'activité Convert j'utilise, l'application se bloque sur essayant de passer à cette mise en page dans le menu principal , mais cela fonctionnait avant que j'essaie d'ajouter le code de multiplication. Merci d'avance.

public class Convert extends AppCompatActivity { 


final EditText currency_input = (EditText) findViewById(R.id.editText_currency_input); 
final TextView answer = (TextView) findViewById(R.id.textView_convert_to); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.convert); 

    Spinner spinner_convert_from = (Spinner) findViewById(R.id.spinner_convert_from); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
      R.array.currency_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner_convert_from.setAdapter(adapter); 
} 



private void USD() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.2798)); 
} 

private void EUR() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.14502)); 
} 

private void AUD() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.71911)); 
} 

private void CAD() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.7226)); 
} 

private void JPY() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*142.482)); 
} 

private void CHF() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 1.24662)); 
} 

private void CNY() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 8.7714)); 
} 

private void KRW() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1430.8)); 
} 

private void SEK() { 
    answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 11.1187)); 
} 


public class planOnClickListener implements AdapterView.OnItemSelectedListener { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View v, int pos, 
           long id) { 
     parent.getItemAtPosition(pos); 

     if (pos == 0) { 
      USD(); 
     } else if (pos == 1) { 
      EUR(); 
     } else if (pos == 2) { 
      AUD(); 
     } else if (pos == 3) { 
      CAD(); 
     } else if (pos == 4) { 
      JPY(); 
     } else if (pos == 5) { 
      CHF(); 
     } else if (pos == 6) { 
      CNY(); 
     } else if (pos == 7) { 
      KRW(); 
     } else if (pos == 8) { 
      SEK(); 
     } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 

    } 
} 

}

+0

S'il tombe en panne il y a une entrée correspondante dans Logcat (Android Monitor) S'il vous plaît partagez-le – 0X0nosugar

+0

Désolé je suis tout nouveau à Android Studio et je ne suis pas sûr de ce que je cherche dans le Logcat comme il y a 1000 + messages quand je lance l'application dans l'émulateur. –

+0

Oui, c'est beaucoup, même dans un émulateur :) Il y a un champ de recherche, vous pouvez taper par exemple. votre nom de package pour affiner la recherche. Ou, comme vous cherchez un rapport d'accident, vous pouvez basculer le niveau du message de journal (plusieurs niveaux de verbeux à l'erreur) – 0X0nosugar

Répondre

1

Il y a quelques erreurs courantes dans vos codes. J'ai mis à jour votre code.

Voici le code de travail:

//Convert.java 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class Convert extends AppCompatActivity { 

    EditText currency_input ; 
    TextView answer; 

    String input; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.convert); 

     // Views 
     currency_input = (EditText) findViewById(R.id.editText_currency_input); 
     answer = (TextView) findViewById(R.id.textView_convert_to); 

     // Default value 
     currency_input.setText("0.0"); 

     Spinner spinner_convert_from = (Spinner) findViewById(R.id.spinner_convert_from); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
       R.array.currency_array, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner_convert_from.setAdapter(adapter); 

     // Add item selected listener 
     spinner_convert_from.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View v, int pos, 
             long id) { 

       // Get input text 
       input = currency_input.getText().toString(); 

       if (pos == 0) { 
        USD(); 
       } else if (pos == 1) { 
        EUR(); 
       } else if (pos == 2) { 
        AUD(); 
       } else if (pos == 3) { 
        CAD(); 
       } else if (pos == 4) { 
        JPY(); 
       } else if (pos == 5) { 
        CHF(); 
       } else if (pos == 6) { 
        CNY(); 
       } else if (pos == 7) { 
        KRW(); 
       } else if (pos == 8) { 
        SEK(); 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) { 

      } 
     }); 

    } 

    private void USD() { 
     answer.setText(String.valueOf(Double.valueOf(input)*1.2798)); 
    } 

    private void EUR() { 
     answer.setText(String.valueOf(Double.valueOf(input)*1.14502)); 
    } 

    private void AUD() { 
     answer.setText(String.valueOf(Double.valueOf(input)*1.71911)); 
    } 

    private void CAD() { 
     answer.setText(String.valueOf(Double.valueOf(input)*1.7226)); 
    } 

    private void JPY() { 
     answer.setText(String.valueOf(Double.valueOf(input)*142.482)); 
    } 

    private void CHF() { 
     answer.setText(String.valueOf(Double.valueOf(input)* 1.24662)); 
    } 

    private void CNY() { 
     answer.setText(String.valueOf(Double.valueOf(input)* 8.7714)); 
    } 

    private void KRW() { 
     answer.setText(String.valueOf(Double.valueOf(input)*1430.8)); 
    } 

    private void SEK() { 
     answer.setText(String.valueOf(Double.valueOf(input)* 11.1187)); 
    } 
} 

Voici votre mise en page XML:

// convert.xml 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:layout_margin="16dp" 
    tools:context="com.ferdous.stackoverflowanswer.Convert"> 

    <TextView 
     android:id="@+id/textView_convert_to" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textSize="24dp"/> 

    <Spinner 
     android:id="@+id/spinner_convert_from" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp"> 

    </Spinner> 

    <EditText 
     android:id="@+id/editText_currency_input" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp"/> 

</LinearLayout> 

SORTIE:

enter image description here

+0

Merci beaucoup, vraiment apprécier l'aide. –

+0

Très bienvenue ... Si ma réponse me semble utile alors marquez-la comme bonne réponse :) – FAT