【发布时间】:2012-02-08 04:48:11
【问题描述】:
我搜索了该网站,发现了类似的问题,我已经实施了这些解决方案,但无济于事。我正在尝试做的事情:我只是想获得一点 Android 编程经验,所以我尝试制作一个 hex/dec/bin/oct 计算器。
我有一个十进制、十六进制、二进制和八进制的 EditText。它们每个旁边都有一个“转换自”按钮。所以如果你点击按钮从八进制转换,它会输出相应的转换到其他人的EditText字段。
这是我尝试用于 Lucifer 建议的 from decimal 函数的代码的改进版本,但仍然没有解决问题:
public void dec(View view) {
final EditText decimal = (EditText) findViewById(R.id.editDec);
final EditText hex = (EditText) findViewById(R.id.editHex);
final EditText bin = (EditText) findViewById(R.id.editBin);
final EditText oct = (EditText) findViewById(R.id.editOct);
String deci = decimal.getText().toString();
hex.setText(String.valueOf(Integer.parseInt(deci,16)));
bin.setText(String.valueOf(Integer.parseInt(deci,2)));
oct.setText(String.valueOf(Integer.parseInt(deci,8)));
}
我得到的当前错误
02-08 00:04:32.143: E/AndroidRuntime(409): Caused by: java.lang.NumberFormatException: Invalid int: "54"
“54”是我尝试在十进制 EditText 中输入的数字。
我认为它无法找到具有文本输入 id 的资源,但我并没有尝试将文本作为 ID 获取,我希望它作为文本。
我假设我把一些简单的事情搞砸了,但它让我无法理解。
这是它试图从中获取的 EditText 之一
<EditText
android:id="@+id/editHex"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="11.38"
android:textColor="#000000"
android:background="@android:drawable/editbox_background"
android:inputType="text" >
</EditText>
十进制、二进制和八进制输入使用“数字”的 inputType
【问题讨论】:
-
也许你应该通读谷歌给出的这个例子。 Form Stuff - EditText
-
错在哪一行,更明显。
-
使用调试器和日志猫你会找到解决办法的。
-
@aneal,我检查了该页面,但没有看到任何有助于解决这种情况的内容。
-
@Smith,第一条错误消息来自 LogCat。通过运行调试器,我在 LogCat 中收到“02-07 23:59:00.562: W/ResourceType(510): No package identifier when getting value for resource number 0x00000054”。为什么将文本值称为资源编号?
标签: java android android-edittext