android - Mistake in library -
this logcat. program calculator, don't know how solve mistake
e/androidruntime(620): java.lang.runtimeexception: unable start activity componentinfo{calculator.tt/calculator.tt.calculatoractivity}: java.lang.classcastexception: android.widget.edittext cannot cast android.widget.button this main.xml file, layout has edittext , 5 tablerow. in last tablerow make equal button bigger button.
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <edittext android:id="@+id/answer" android:layout_width="match_parent" android:layout_height="70dp" android:ems="10" android:gravity="right|center|end" android:lines="1" > <requestfocus /> </edittext> <tablerow android:id="@+id/tablerow02" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left" android:paddingleft="5dp" android:paddingtop="30dp" > <button android:id="@+id/open" android:layout_width="77dp" android:layout_height="wrap_content" android:text="(" /> <button android:id="@+id/close" android:layout_width="77dp" android:layout_height="wrap_content" android:text=")" /> <imagebutton android:id="@+id/sqrt" android:layout_width="77dp" android:layout_height="wrap_content" android:src="@drawable/sqrt" /> <button android:id="@+id/add" android:layout_width="77dp" android:layout_height="wrap_content" android:text="+" /> </tablerow> <tablerow android:id="@+id/tablerow1" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingleft="5dp" > <imagebutton android:id="@+id/x2" android:layout_width="77dp" android:layout_height="match_parent" android:src="@drawable/x2" /> <imagebutton android:id="@+id/x3" android:layout_width="77dp" android:layout_height="wrap_content" android:src="@drawable/x3" /> <button android:id="@+id/giaithua" android:layout_width="77dp" android:layout_height="match_parent" android:text="x!" /> <button android:id="@+id/sub" android:layout_width="77dp" android:layout_height="match_parent" android:text="-" /> </tablerow> <tablerow android:id="@+id/tablerow03" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingleft="5dp" > <button android:id="@+id/key7" android:layout_width="77dp" android:layout_height="wrap_content" android:text="7" /> <button android:id="@+id/key8" android:layout_width="77dp" android:layout_height="wrap_content" android:text="8" /> <button android:id="@+id/key9" android:layout_width="77dp" android:layout_height="wrap_content" android:text="9" /> <button android:id="@+id/mul" android:layout_width="77dp" android:layout_height="wrap_content" android:text="*" /> </tablerow> <tablerow android:id="@+id/tablerow04" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingleft="5dp" > <button android:id="@+id/key4" android:layout_width="77dp" android:layout_height="wrap_content" android:text="4" /> <button android:id="@+id/key5" android:layout_width="77dp" android:layout_height="wrap_content" android:text="5" /> <button android:id="@+id/key6" android:layout_width="77dp" android:layout_height="wrap_content" android:text="6" /> <button android:id="@+id/div" android:layout_width="77dp" android:layout_height="wrap_content" android:text="/" /> </tablerow> <tablerow android:id="@+id/tablerow05" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingleft="5dp" > <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <button android:id="@+id/key1" android:layout_width="77dp" android:layout_height="wrap_content" android:text="1" /> <button android:id="@+id/key2" android:layout_width="77dp" android:layout_height="wrap_content" android:text="2" /> <button android:id="@+id/key3" android:layout_width="77dp" android:layout_height="wrap_content" android:text="3" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" > <button android:id="@+id/dot" android:layout_width="77dp" android:layout_height="wrap_content" android:text="." /> <button android:id="@+id/key0" android:layout_width="77dp" android:layout_height="wrap_content" android:text="0" /> <imagebutton android:id="@+id/minus" android:layout_width="77dp" android:layout_height="match_parent" android:src="@drawable/minus" /> </linearlayout> </linearlayout> <button android:id="@+id/equal" android:layout_width="77dp" android:layout_height="95dp" android:text="=" /> </tablerow> </linearlayout> this calculatoractivity:
package calculator.tt; import android.app.activity; import android.os.bundle; import android.text.inputtype; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.imagebutton; public class calculatoractivity extends activity { edittext answer1; string as; char c; double a, b, e; boolean k; button addbutton; button subbutton; button divbutton; button mulbutton; imagebutton x2button; imagebutton x3button; imagebutton sqrtbutton; button gtbutton; button opbutton; button clbutton; button dotbutton; imagebutton minusbutton; button key0button; button key1button; button key2button; button key3button; button key4button; button key5button; button key6button; button key7button; button key8button; button key9button; button equalbutton; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); /*khai báo các lớp cho các button*/ answer1 = (edittext)findviewbyid(r.id.answer); answer1.setinputtype(inputtype.type_null); addbutton = (button)findviewbyid(r.id.add); addbutton.setonclicklistener(new addbuttonhandler()); subbutton = (button)findviewbyid(r.id.sub); subbutton.setonclicklistener(new subbuttonhandler()); divbutton = (button)findviewbyid(r.id.div); divbutton.setonclicklistener(new divbuttonhandler()); mulbutton = (button)findviewbyid(r.id.mul); mulbutton.setonclicklistener(new mulbuttonhandler()); equalbutton = (button)findviewbyid(r.id.answer); equalbutton.setonclicklistener(new equalbuttonhandler()); sqrtbutton = (imagebutton)findviewbyid(r.id.sqrt); sqrtbutton.setonclicklistener(new sqrtbuttonhandler()); x2button = (imagebutton)findviewbyid(r.id.x2); x2button.setonclicklistener(new x2buttonhandler()); x3button = (imagebutton)findviewbyid(r.id.x3); x3button.setonclicklistener(new x3buttonhandler()); minusbutton = (imagebutton)findviewbyid(r.id.minus); minusbutton.setonclicklistener(new minusbuttonhandler()); gtbutton = (button)findviewbyid(r.id.giaithua); gtbutton.setonclicklistener(new gtbuttonhandler()); dotbutton = (button)findviewbyid(r.id.dot); dotbutton.setonclicklistener(new dotbuttonhandler()); key0button = (button)findviewbyid(r.id.key0); key0button.setonclicklistener(new key0buttonhandler()); key1button = (button)findviewbyid(r.id.key1); key1button.setonclicklistener(new key1buttonhandler()); key2button = (button)findviewbyid(r.id.key2); key2button.setonclicklistener(new key2buttonhandler()); key3button = (button)findviewbyid(r.id.key3); key3button.setonclicklistener(new key3buttonhandler()); key4button = (button)findviewbyid(r.id.key4); key4button.setonclicklistener(new key4buttonhandler()); key5button = (button)findviewbyid(r.id.key5); key5button.setonclicklistener(new key5buttonhandler()); key6button = (button)findviewbyid(r.id.key6); key6button.setonclicklistener(new key6buttonhandler()); key7button = (button)findviewbyid(r.id.key7); key7button.setonclicklistener(new key7buttonhandler()); key8button = (button)findviewbyid(r.id.key8); key8button.setonclicklistener(new key8buttonhandler()); key9button = (button)findviewbyid(r.id.key9); key9button.setonclicklistener(new key9buttonhandler()); log.e("Đang chạy đến đây","xong khai bao cac lop"); } /* các lớp cho button*/ private class x2buttonhandler implements onclicklistener{ public void onclick (view v){ k=true; = double.parsedouble(answer1.gettext().tostring()); answer1.settext(a*a+""); } } private class x3buttonhandler implements onclicklistener{ public void onclick (view v){ k=true; = double.parsedouble(answer1.gettext().tostring()); answer1.settext(a*a*a+""); } } private class minusbuttonhandler implements onclicklistener{ public void onclick (view v){ = double.parsedouble(answer1.gettext().tostring()); answer1.settext(-a+""); } } /*tính căn bậc 2*/ private class sqrtbuttonhandler implements onclicklistener{ public void onclick (view v){ k=true; = double.parsedouble(answer1.gettext().tostring()); b = math.sqrt(a); answer1.settext(b+""); } } /*tinh giai thua*/ private class gtbuttonhandler implements onclicklistener{ public void onclick (view v){ k=true; = double.parsedouble(answer1.gettext().tostring()); b=1; (int i=1;i<a+1;i++) { b=b*i; } answer1.settext(b+""); } } private class dotbuttonhandler implements onclicklistener{ public void onclick (view v){ int i; = answer1.gettext().tostring(); if (k) answer1.settext(""); k=false; /*chi cho duy nhat 1 dau cham xuat hien*/ (i=0;i<as.length();i++) if(as.charat(i)==46) { i=1; break; } if (i!=1) answer1.append("."); } } private class key0buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("0"); k=false; } } private class key1buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("1"); k=false; } } private class key2buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("2"); k=false; } } private class key3buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("3"); k=false; } } private class key4buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("4"); k=false; } } private class key5buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("5"); k=false; } } private class key6buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("6"); k=false; } } private class key7buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("7"); k=false; } } private class key8buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("8"); k=false; } } private class key9buttonhandler implements onclicklistener{ public void onclick (view v){ if (k) answer1.settext(""); answer1.append("9"); k=false; } } private class addbuttonhandler implements onclicklistener{ public void onclick (view v){ int i,z=0; string a1=null,a2=null; (i=0;i<as.length();i++) if (as.charat(i)==43||as.charat(i)==42||as.charat(i)==45||as.charat(i)==47){ a1 = as.substring(0,i-1); a2 = as.substring(i+1,as.length()); z=as.charat(i); break; } = double.parsedouble(a1); b = double.parsedouble(a2); if (z==43) answer1.settext(a+b + ""); if (z==42) answer1.settext(a*b + ""); if (z==45) answer1.settext(a-b + ""); else answer1.settext(a/b + ""); answer1.append("+"); } } private class mulbuttonhandler implements onclicklistener{ public void onclick (view v){ int i,z=0; string a1=null,a2=null; (i=0;i<as.length();i++) if (as.charat(i)==43||as.charat(i)==42||as.charat(i)==45||as.charat(i)==47){ a1 = as.substring(0,i-1); a2 = as.substring(i+1,as.length()); z=as.charat(i); break; } = double.parsedouble(a1); b = double.parsedouble(a2); if (z==43) answer1.settext(a+b + ""); if (z==42) answer1.settext(a*b + ""); if (z==45) answer1.settext(a-b + ""); else answer1.settext(a/b + ""); answer1.append("*"); } } private class subbuttonhandler implements onclicklistener{ public void onclick (view v){ int i,z=0; string a1=null,a2=null; (i=0;i<as.length();i++) if (as.charat(i)==43||as.charat(i)==42||as.charat(i)==45||as.charat(i)==47){ a1 = as.substring(0,i-1); a2 = as.substring(i+1,as.length()); z=as.charat(i); break; } = double.parsedouble(a1); b = double.parsedouble(a2); if (z==43) answer1.settext(a+b + ""); if (z==42) answer1.settext(a*b + ""); if (z==45) answer1.settext(a-b + ""); else answer1.settext(a/b + ""); answer1.append("-"); } } private class divbuttonhandler implements onclicklistener{ public void onclick (view v){ int i,z=0; string a1=null,a2=null; (i=0;i<as.length();i++) if (as.charat(i)==43||as.charat(i)==42||as.charat(i)==45||as.charat(i)==47){ a1 = as.substring(0,i-1); a2 = as.substring(i+1,as.length()); z=as.charat(i); break; } = double.parsedouble(a1); b = double.parsedouble(a2); if (z==43) answer1.settext(a+b + ""); if (z==42) answer1.settext(a*b + ""); if (z==45) answer1.settext(a-b + ""); else answer1.settext(a/b + ""); answer1.append("/"); } } private class equalbuttonhandler implements onclicklistener{ public void onclick (view v){ int i,z=0; string a1 = null, a2 = null; k=true; = answer1.gettext().tostring(); (i=0;i<as.length();i++) if (as.charat(i)==43||as.charat(i)==42||as.charat(i)==45||as.charat(i)==47){ a1 = as.substring(0,i-1); a2 = as.substring(i+1,as.length()); z=as.charat(i); break; } = double.parsedouble(a1); b = double.parsedouble(a2); if (z==43) answer1.settext(a+b + ""); if (z==42) answer1.settext(a*b + ""); if (z==45) answer1.settext(a-b + ""); else answer1.settext(a/b + ""); } } }
in java line:
equalbutton = (button)findviewbyid(r.id.answer);
you looking edittext defined xml:
<edittext
android:id="@+id/answer"
it looks meant write this:
equalbutton = (button)findviewbyid(r.id.equal);
Comments
Post a Comment