Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Androidga dastur tuzuvchilar uchun

0 ovoz
158 marta ko‘rilgan
so‘radi 15 aprel Prosta_bek (122 bal)
Salom.men androidga dasturcha tuzyapgan edim. Ammo menda xatolik kelib chiqdi
Textviewdan matnni id boyicha oldim .

TextView t = findViewById(R.id.text);
String a = t.getText().toString();


Menda 3ta textviewbor unda son va + * / - (qoshuv ahruv hk) amallar bor) va yana son bor. uni bitta intga qoyib natijani olishim kerak men bunday qilsam.

(Deylik meni textviewlarimda 123 + 456 degan matn bor. Men uni bitta ózgaruvchiga chiqarib natijani qanday bomasin olishim kerak hozir misolimda 123 + 456 bosa demak natijada 579 bolishi kerak)
Men bumday qildim

TextView t = findViewById(R.id.text);
String a = t.getText().toString();

TextView amal = findViewById(R.id.amal);
String a2 = amal.getText().toString();

TextView t2 = findViewById(R.id.text2);
String a3 = t2.getText().toString();

int natija = t + amal + t2;



Ammo xatolik kelib chiqyapti.

An instance of type java.lang.String can not be assigned to a variable of type int

Deb

Xullas yordom berib yuborila. Men qanday bomasin textviewdan matnni olib undagi ammallarni bajarishim kerak. (Kodlarni telda shoshilib yozdim. Xatolik bolsa uzr)

1 ta javob

+1 ovoz
javob berdi 16 aprel Sharofiddin (394 bal)
tanlangan 19 aprel Prosta_bek
 
Eng yaxshi javob
Birinchi navbatda a va a3 ni integer tipiga cast qilish kerak. Bo'lmasa oddiy string concatenation bo'b qoladi. Bu shunday qilinadi :
           Integer n1 = Integer.parseInt(a);
           Integer n2 = Integer.parseInt(a3);
Amallarni switch/case bilan bajargan ma'qul:
       int res = 0;
       switch(a2){
                 case "+": res = n1+n2;break;
                 case "-": res = n1-n2;break;
                 case "*":
                 case"x": res = n1*n2;break;
                 case":":
                 case "/": res = n1/n2;break;
           default: throw new IllegalArgumentException("Amal noto'g'ri kiritilgan");}
izoh qoldirdi 19 aprel Prosta_bek (122 bal)
Sonni olyapgan joyimda Qoldiqli sonlar bólsa xatolik chiqyapti. Uni qanday bartaraft etsa bóladi. Menda qoldiqli sonlar ham ishlashi kerak
izoh qoldirdi 19 aprel Prosta_bek (122 bal)
Misol uchun bunday son bolsa 22.01  xatolik  bolyapti
izoh qoldirdi 19 aprel Sharofiddin (394 bal)
Bu holda integer,long typelari yaramaydi Float ,Double yoki agar o‘ta aniqlik kerak bo‘lsa BigDecimal ni ishlating.
izoh qoldirdi 23 aprel Prosta_bek (122 bal)
Malol kelmasa  namuna kórsatib bering

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...