2 o19830015 o19830015 于 2012.11.28 17:03 提问

从EditText中获取单个字符
String PT = pt.getText().toString(); 
int len = PT.length(); 
char chars[] = PT.toCharArray(); 
for(int i=0;i<len;i++)
{ Toast.makeText(encrypt.this,chars[i], 0).show(); }

这段代码是用在EditText中读取字符串,获取单个字符的。但是结果出了一个logcat错误信息:

11-28 12:41:01.228: E/AndroidRuntime(1632):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-28 12:41:01.228: E/AndroidRuntime(1632):     at java.lang.reflect.Method.invokeNative(Native Method)
11-28 12:41:01.228: E/AndroidRuntime(1632):     at java.lang.reflect.Method.invoke(Method.java:507)
11-28 12:41:01.228: E/AndroidRuntime(1632):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-28 12:41:01.228: E/AndroidRuntime(1632):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-28 12:41:01.228: E/AndroidRuntime(1632):     at dalvik.system.NativeStart.main(Native Method)
11-28 12:46:43.688: W/KeyCharacterMap(1674): No keyboard for id 0
11-28 12:46:43.688: W/KeyCharacterMap(1674): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
11-28 12:46:54.442: W/ResourceType(1674): No package identifier when getting value for resource number 0x00000061
11-28 12:46:54.448: D/AndroidRuntime(1674): Shutting down VM
11-28 12:46:54.448: W/dalvikvm(1674): threadid=1: thread exiting with uncaught exception (group=0x40015560)
11-28 12:46:54.459: E/AndroidRuntime(1674): FATAL EXCEPTION: main
11-28 12:46:54.459: E/AndroidRuntime(1674): android.content.res.Resources$NotFoundException: String resource ID #0x61
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.content.res.Resources.getText(Resources.java:201)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.widget.Toast.makeText(Toast.java:258)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at com.project.DENCrypt.encrypt$1.onClick(encrypt.java:33)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.view.View.performClick(View.java:2485)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.view.View$PerformClick.run(View.java:9080)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.os.Handler.handleCallback(Handler.java:587)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.os.Looper.loop(Looper.java:123)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at java.lang.reflect.Method.invokeNative(Native Method)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at java.lang.reflect.Method.invoke(Method.java:507)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-28 12:46:54.459: E/AndroidRuntime(1674):     at dalvik.system.NativeStart.main(Native Method)

2个回答

cytown
cytown   2012.11.29 15:15
已采纳
Toast.makeText(encrypt.this,chars[i] + "", 0).show();

原错误在于char会转换成int导致寻找int对应的resource。

allwefantasy
allwefantasy 回答完全正确。
5 年多之前 回复
suannai0314
suannai0314 代码部分可以用code sample,刚帮你编辑了一下,你也可以自己试试这个功能~
5 年多之前 回复
mistbow
mistbow   2012.11.29 16:03
Toast.makeText(encrypt.this,chars[i] + "", 0).show();

makeText第二个参数可以是int类型的,和CharSequence类型的。char转型成int了,所以像cytown所的,会去找资源。

如果写成chars[i]+""。转型成string类型的了。直接显示字符串内容。最后一个参数是持续时间。

ps:

public final class String implements Serializable, Comparable<String>, CharSequence
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
String 字符串的处理和EditText的判断方法
EditText获得的字符串——比较length 比 比较equals方法的效率更快。string.trim():去掉字符串首尾空格 防止不必要的空格导致错误
java中实现键盘录入单个字符
初学java时会发现 键盘录入数字类型的比较容易 而录入单个字符的实现就没有那么简单了第一种方法:通过接收字符串 再接收其第一个字符import java.util.Scanner; //导包 class T1 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); Syste
Android 按钮点击删除Edittext最后一个字符串
int index=editText.getSelectionStart(); //获取Edittext光标所在位置 String str=editText.getText().toString(); if (!str.equals("")) {//判断输入框不为空,执行删除 editText.getText().delete(index-1,index); }
android 监听EditText输入字符长度
项目当中的要求很多,最近遇到了一些要求,在Dialog上用户输入密码,当密码位数达到6位并且自动判断密码是否正确,如果正确Dialog自动消失,跳转其他界面。 看似很艰难,其实只要你知道有这样一个监听就简单多了。这个监听就是addTextChangedListener(EditText s). public class EditTextActivity extends Activity
获取联系人的姓名和联系方式,并放到editText中
首先创建main.xml文件,并在androidManifest.xml文件中设置读取联系人列表的权限 public class SysAction extends Activity { final int PICK_CONTACT = 0; @Override public void onCreate(Bundle savedInstanceState) { s
java如何从控制台录入接受单个字符
import java.util.Scanner; public class Test{ public static void main(String[] args){ Scanner input=new Scanner(System.in); char A=input.next().charAt(0); } }
Android Studio App EditText获取输入的文字
用aedittext.getText().toString() 获取输入的字符串。 示范 整个activity_mani.xmln内容如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android EditText获取光标位置并且插入字符或者删除字符
1.获取光标位置   [java]  int index = editText.getSelectionStart();     int index = editText.getSelectionStart(); 2.在光标处插入字符   [java]  int index = editText.getSelectionStart();  
android中得到EditText中文字的物理长度
我想杀了写这块代码的同事,改了几个星期bug了问题一大堆。每天调些数字,然后看看效果,学到的东西真心少,真想离开。 今天需要动态调整EditText文字大小,刚开始是准备用文字数量控制的,后来发现每个文字的宽度不一样,比如字母i和字母m就不一样,算起来不精确,后来用TextPaint解决了问题。用法如下: TextPaint mTextPaint =mEditText.getPaint
Android统计当前输入字符数,限制edittext输入字符数
1–&gt;统计当前输入字符数 定义成员变量 private CharSequence temp ;//接收当前输入的字符 private int maxNum = 200; private int nowNum ;//当前输入的字符数 然后设置edittext的监听,mEditText.addTextChangedListener 在“` @Overrid