2016-04-14 32 views
0

Bu benim ilk kodlama denemem. Bir arkadaşım için bir küp hesap makinesi yapmaya çalışıyorum. Hesaplama formülü var, bazı youtube videolarında gördüğüm bazı kodları denedim ve şimdi sıkıştım. Dize formatı ve boş gösterici istisnası ve ondalık hakkında bir şeyler hakkında hata alıyorum. İşte ben bugüne kadar ne var: İlk bakıştaAndroid için küp hesap makinesi uygulaması yapmaya çalışıyorum ve hatalar alıyorum

public void onButtonClick(View v) { 
    EditText e1 = (EditText)findViewById(R.id.Length); 
    EditText e2 = (EditText)findViewById(R.id.width); 
    EditText e3 = (EditText)findViewById(R.id.depth); 
    TextView t1 = (TextView)findViewById(R.id.textView); 
    int num1 = Integer.parseInt(e1.getText().toString()); 
    int num2 = Integer.parseInt(e2.getText().toString()); 
    int num3 = Integer.parseInt(e3.getText().toString()); 
    int sum = num1 * num2 * num3/12/27; 
    t1.setText(Integer.toString(sum)); 
} 
+1

Eğer logcat gönderebilir miyim? – Yashasvi

+0

Bunun ne olduğunu veya nasıl elde edileceğini bilmiyorum, burada gerçek noob. Üzgünüm –

cevap

0

, iki katına çıkarmayı dönüştürmeden değişken sum hesapladık gibi görünüyor. Bu bölüm 12 ve 27'ye göre tamsayı bölüşümüne ve dolayısıyla bilgi kaybına yol açacaktır.

double sum = (double) num1 * num2 * num3/12/27; 

Ve dizesine çift kullanmanız gerekir dönüştürmek için: doğru yolu olurdu

t1.setText(String.valueOf(sum)); 
+0

Hala bu java.lang.NullPointerException hatasını alıyorum. Kodun sadece düğmeye basıldığında etkinleştirilebilmesi için bir yol var mı ve sadece 3 alan dolduğunda düğmeyi nasıl kullanabilirim? –

+0

tamam birkaç değişiklik yaptım: int num1 = 0; if (e1! = Null) num1 = Tamsayı.parseInt (e1.getText(). ToString()); –

+0

Sadece 3 alan dolduğunda etkinleştirmek için bazı "if" ifadeleri koyabilirsiniz ve kullanıcı düğmeye basıldığında gereksinimleriniz karşılanmazsa, bir tost gösterebilir. Örneğin. eğer (textField empty) {Toast ("Metin Alanı boş bırakılmamalıdır"}. Umarım yardımcı olurum! –