I want to get the String from an EditText and then read individual characters from it. I've tried the following code:
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(); }
However I get a Force Close error on this. Where am I going wrong?
I'm quite new to all this!
Here's the 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)
Toast.makeText(encrypt.this,String.valueOf(chars[i]), 0).show();
instead of
Toast.makeText(encrypt.this,chars[i], 0).show();
try this:
Toast.makeText(encrypt.this,chars[i] + "", 0).show();
it has the same way with Ram's
Change your toast message to
Toast.makeText(encrypt.this,Character.toString(chars[i]), Toast.LENGTH_SHORT).show();
Here the problem is with Toast message. Toast can not Display charaters. so convert charater to string and display
the chars[i]
is integer value. If you look closely in your error log you will see
android.content.res.Resources$NotFoundException: String resource ID #0x61
(if you pass integer parameter, android will lookup for a resource with this Id)
you can print the character from the string directly:
Toast.makeText(encrypt.this,PT[i], 0).show();
probably the edit text (layout resource)is not available when reading the data from it. Just check whether you are able to get no null value when you do
EditText edt1 = (EditText)findViewById(R.id.myEditView);
log edt1(either through log, system.out.println);
User contributions licensed under CC BY-SA 3.0