Android的TextView中,用concated在一起多个变量的setText [英] Android TextView, setText using multiple variables concated together

查看:203
本文介绍了Android的TextView中,用concated在一起多个变量的setText的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从数据库中提取数据,在一个类的实例返回值。在我的我的活动onCreate方法,我设置的内容视图,然后运行以下code:

  VAL的thisObject:ClassCardJ = myDBAdapter.getAddressBookEntry(cardNum)
// VAL textFullName:字符串=(thisObject.getfName()的toString()++ thisObject.getlName()的toString()。)VAL textFirstName:字符串= thisObject.getfName()的toString()。
VAL textLastName:字符串= thisObject.getlName()的toString()。
firstLine.setText(textFirstName)
Toast.makeText(AddressBookEntryActivity.this,thisObject.getlName()的toString(),Toast.LENGTH_SHORT。).show();

这台firstLine中文字的textFirstName值并显示与我正在使用textLastName值敬酒。

然而,当我试图改变firstLine中来textFullName的的setText(在取消后),我的程序强制关闭。我做一些有趣的事情错了??

作为的要求,我logcat的堆栈跟踪(我试过,包括一切有关而忽略一切不相关):

  I / ActivityManager(67):过程com.android.email(PID 330)已经死亡。
I / ActivityManager(67):开始:意向{CMP = me.snapcard / .AddressBookActivity}从PID 393
I / ActivityManager(67):显示me.snapcard / .AddressBookActivity:+ 589ms
I / ActivityManager(67):开始:意向{CMP = me.snapcard / .AddressBookEntryActivity(有临时演员)}从PID 393
E / dalvikvm(393):找不到类的scala.collection.mutable.StringBuilder,从法me.snapcard.AddressBookEntryActivity.onCreate引用
W / dalvikvm(393):VFY:无法解析新的实例1148(Lscala /收集/可变/ StringBuilder的;)在LME / snapcard / AddressBookEntryActivity;
D / dalvikvm(393):VFY:在更换运code 0x22 0x0050
D / dalvikvm(393):VFY:死code 0x0052-0091在LME / snapcard / AddressBookEntryActivity; .onCreate(Landroid / OS /束;)V
D / AndroidRuntime(393):关闭VM
W / dalvikvm(393):主题ID = 1:螺纹未捕获的异常(组= 0x40015560)退出
E / AndroidRuntime(393):致命异常:主要
E / AndroidRuntime(393):java.lang.NoClassDefFoundError的:scala.collection.mutable.StringBuilder
E / AndroidRuntime(393):在me.snapcard.AddressBookEntryActivity.onCreate(AddressBookEntryActivity.scala:40)
E / AndroidRuntime(393):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E / AndroidRuntime(393):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
E / AndroidRuntime(393):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E / AndroidRuntime(393):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
E / AndroidRuntime(393):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)
E / AndroidRuntime(393):在android.os.Handler.dispatchMessage(Handler.java:99)
E / AndroidRuntime(393):在android.os.Looper.loop(Looper.java:130)
E / AndroidRuntime(393):在android.app.ActivityThread.main(ActivityThread.java:3683)
E / AndroidRuntime(393):在java.lang.reflect.Method.invokeNative(本机方法)
E / AndroidRuntime(393):在java.lang.reflect.Method.invoke(Method.java:507)
E / AndroidRuntime(393):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
E / AndroidRuntime(393):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E / AndroidRuntime(393):在dalvik.system.NativeStart.main(本机方法)
W / ActivityManager(67):强制完成活动me.snapcard / .AddressBookEntryActivity
W / ActivityManager(67):强制完成活动me.snapcard / .AddressBookActivity
W / ActivityManager(67):为HistoryRecord {4082ce18 me.snapcard / .AddressBookEntryActivity}活动暂停超时
I / dalvikvm(67):日新:调整JitTable 1024年至2048年
W / ActivityManager(67):启动超时已过期,放弃唤醒锁!


解决方案

就像你说的,你使用一个StringBuilder。我怀疑是你的scala.collection.mutable对象有编码,不允许其项目的顺利串联。我强烈建议您缠绕连接字符串(包括刚才textFirstName和textLastName,如果你要单独使用它们)在斯卡拉的StringBuilder。如果您想使用java.lang.StringBuilder中,那么你可以通过简单地包装斯卡拉的StringBuilder与java.lang.StringBuilder中,其中有详细的此处。希望帮助!

I am pulling data from a database, returning the values in an instance of a class. In my onCreate method of my Activity, I am setting the content view and then running the following code:

val thisObject:ClassCardJ = myDBAdapter.getAddressBookEntry(cardNum)
//val textFullName:String = (thisObject.getfName().toString() + " " + thisObject.getlName().toString())

val textFirstName:String = thisObject.getfName().toString()
val textLastName:String = thisObject.getlName().toString()
firstLine.setText(textFirstName)
Toast.makeText(AddressBookEntryActivity.this, thisObject.getlName().toString(), Toast.LENGTH_SHORT).show();

Which sets the firstLine text to the textFirstName value and displays a toast with the value that I am using in textLastName.

However, when I attempt to change the setText of the firstLine to textFullName (after uncommenting it), my program force closes. Am I doing something funny wrong??

As request, my logcat stack trace (I tried to include everything relevant and omit everything non-relevant):

I/ActivityManager(   67): Process com.android.email (pid 330) has died.
I/ActivityManager(   67): Starting: Intent { cmp=me.snapcard/.AddressBookActivity } from pid 393
I/ActivityManager(   67): Displayed me.snapcard/.AddressBookActivity: +589ms
I/ActivityManager(   67): Starting: Intent { cmp=me.snapcard/.AddressBookEntryActivity (has extras) } from pid 393
E/dalvikvm(  393): Could not find class 'scala.collection.mutable.StringBuilder', referenced from method me.snapcard.AddressBookEntryActivity.onCreate
W/dalvikvm(  393): VFY: unable to resolve new-instance 1148   (Lscala/collection/mutable/StringBuilder;) in Lme/snapcard/AddressBookEntryActivity;
D/dalvikvm(  393): VFY: replacing opcode 0x22 at 0x0050
D/dalvikvm(  393): VFY: dead code 0x0052-0091 in   Lme/snapcard/AddressBookEntryActivity;.onCreate (Landroid/os/Bundle;)V
D/AndroidRuntime(  393): Shutting down VM
W/dalvikvm(  393): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime(  393): FATAL EXCEPTION: main
E/AndroidRuntime(  393): java.lang.NoClassDefFoundError:   scala.collection.mutable.StringBuilder
E/AndroidRuntime(  393):    at   me.snapcard.AddressBookEntryActivity.onCreate(AddressBookEntryActivity.scala:40)
E/AndroidRuntime(  393):    at  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(  393):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
E/AndroidRuntime(  393):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(  393):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(  393):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(  393):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  393):    at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(  393):    at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(  393):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  393):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(  393):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(  393):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(  393):    at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(   67):   Force finishing activity me.snapcard/.AddressBookEntryActivity
W/ActivityManager(   67):   Force finishing activity me.snapcard/.AddressBookActivity
W/ActivityManager(   67): Activity pause timeout for HistoryRecord{4082ce18 me.snapcard/.AddressBookEntryActivity}
I/dalvikvm(   67): Jit: resizing JitTable from 1024 to 2048
W/ActivityManager(   67): Launch timeout has expired, giving up wake lock!

解决方案

Like you said, you used a StringBuilder. My suspicion is that your scala.collection.mutable object has encoding that does not allow smooth concatenation of its items. I strongly suggest you wrap the concatenated string (including just textFirstName and textLastName, if you're going to use them individually) in a Scala StringBuilder. If you would like to use the java.lang.StringBuilder, then you can convert a Scala StringBuilder by simply wrapping the Scala StringBuilder with the java.lang.Stringbuilder, which is detailed here. Hope that helped!

这篇关于Android的TextView中,用concated在一起多个变量的setText的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆