Meddelande

Minska
No announcement yet.

Androidprogrammering

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Androidprogrammering

    Hej. Det var ett bra tag sedan jag var inne på forat. Jag försöker nu lära mig programmera appar till Android mobiler. Jag har följt ett exempel på youtube där man tillverka en enkel "TipCalculator". Den funkar alldeles ok om jag testar den i "viritual device emulator" men när jag kör den i min mobil funkar det inte. Problemet uppstår när man med hjälp av en seekbar vill ändra på ett numeriskt värde.

    Kod:
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
    						
    			tipAmount = (tipSeekBar.getProgress()) * .01;
    			tipAmountET.setText(String.format("%.02f", tipAmount));
    			uppdateTipAndFinalBill();
    			
    		}
    När jag kör i emulatorn så läggs decimaltalet in i tipAmount med decimalpunkt, men i min mobil blir det ett decimalkomma (förmodligen för att den är svensk). Emulatorn är inställ på engelska. När jag sedan gör uppdateTipAndFinalBill() så skiter det sig.
    Kod:
    private void uppdateTipAndFinalBill() {
    		double tipAmount = Double.parseDouble(tipAmountET.getText().toString());
    		double finalBill = billBeforeTip + (billBeforeTip * tipAmount);
    		finalBillET.setText(String.format("%.02f",finalBill));
    Hur löser man detta? Jag vill ju att programmet skall funka i den Svenska mobilen.

  • #2
    Kan inte ge dig exakt lösning men efter lite sökning så kan man använda detta för att hitta decimaltecken
    [kod]
    DecimalFormatSymbols d = new DecimalFormatSymbols(Locale.getDefault());
    [/kod]
    sen får du ändra på den här raden
    [kod]
    finalBillET.setText(String.format("%.02f",finalBill));
    [/kod]
    så att du hårdkodar decimaltecknet efter %

    Hoppas det hjälper dig lite på vägen.

    Kommentera


    • #3
      Jag hittade denna enkla lösning på problemet:
      Kod:
      Locale.setDefault(new Locale("en", "US"));

      Kommentera

      Working...
      X