2016-04-06 12 views
1

2.2 ile girilen değeri çarpan basit bir dönüştürücü yapmaya çalışıyorum ama sonuçların bir metin görünümüne ulaşmasında sorun yaşıyorum. Aldığım hata "setText (Double) yöntemini çözemiyor" diyor. herhangi bir tavsiye?Android'de Çoğaltma Yapmaya Çalışıyor

public void onClick(View v) { 
    double result =0; 
    double a = Double.parseDouble(weightEntered.getText().toString().trim()); 
    double b = 2.2; 
    if(v == button_convert) 
    { 
     if(lbs_kg.isChecked() == true) 
      result = (a * b); 
      t1.setText(result); 
     if(kg_lbs.isChecked() == true) 
      t1.setText("Selected is : "+kg_lbs.getText()); 
    } 

cevap

4

bu hat

t1.setText(result); 

String için çift dönüştürün. Bu çok önemlidir, çünkü çok sayıda aşırı yüklenmiş imzada setText() bulunmaktadır.

Sorunuzda kullanmakta olduğunuz imza, bir Dize Kaynak Kimliği kullanıyor! Bu sayıyı öncelikle bir String'e dönüştürmeniz gerekir, böylece TextView düzgün bir şekilde nasıl kullanılacağını bilir. String.format() kullanma

String str = String.valueOf(result); 
t1.setText(str); 
0

Bunu manzara için setText() sadece metin değeri ayarlayabilirsiniz çünkü dize için çifte değer dönüştürmek gerekiyor. güncelleme t1.setText(String.valueOf(result));

+0

Ona * neden * önemli olduğunu söyle. Ayrıca 'String.valueOf (sonuç)' da çalışır. – Knossos

+0

bu da bir çözümdür, ancak bunu yapmak için uygun bir yol değildir! –

+0

Mükemmel çalıştığınız için teşekkür ederiz. – Ryan159

1
result = (a * b); 
t1.setText(String.format("%.2f", result)) 

çıkış değeri için hassas kontrol etmenizi sağlar.