作为一个小白,想写一个简单的计算器练练手,结果出现了各种问题,还差点导致eclipse崩溃......为了留个教训,特此记录下遇到的问题和解决办法。
首先碰到的便是布局中EditText问题。将代码展示如下:
<EditText
android:id="@+id/et"
android:text="@string/bu_no_0"
android:textSize="35sp"
android:textColor="#0000FF"
android:lines="1"
android:layout_gravity="center"
android:gravity="bottom|right"
android:cursorVisible="false"
android:editable="false"
android:inputType="none"
android:scrollHorizontally="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/> 本身代码是没有问题的,问题出现在图形预览界面,报的错误信息已经是Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V;后来查了下资料,才发现是因为android version的问题,因为android 4.4W不支持EditText,所以才无法预览。解决办法是打开小机器人的下拉列表,调整为其他的版本,就可以图形化预览了。
再者难点和重点就是怎么样将字符串计算机计算出来,搜了一些资料后,大致的思路是先将中缀表达式转化为后缀表达式,然后用栈来处理。(这个对于我来说太高深了,不会用也看不太懂)。后来找了一个“蠢”办法,就是用bsh。先附上下载链接:http://www.beanshell.org/download.html下载bsh-2.0b4.jar。
下载成功后,要先将你的下载目录添加进classpath里面。然后再将该jar包导入到项目里面去。导入的方法很简单,将该包复制到项目文件的libs目录下,然后右键单击该包,选择build path ----->add to build path,就可以了。
最后就是怎么使用了,附上一段代码,相信都可以看懂用法。
Interpreter interpreter = new Interpreter();
try {
interpreter.set("result", interpreter.eval("("+s+")"));
//打印输出结果
et.setText(String.valueOf(interpreter.get("result")));
} catch (EvalError e) {
e.printStackTrace();
} 虽然说程序很简单,但是也花了我好长时间,看来还是有很长的路要走啊。
初学者在开发首个计算器小程序时遇到了EditText布局问题和中缀转后缀计算的挑战。通过使用Beanshell库解决了计算问题,涉及步骤包括下载bsh-2.0b4.jar,添加到classpath并导入到项目中。
6780

被折叠的 条评论
为什么被折叠?



