
我有4个按钮和1个TextVIEw.我希望每个按钮在TextVIEw中从值(解析为int)中添加或减去不同的量.当我点击其中一个按钮时,它会抛出致命错误(如下所示).我搜索了一些其他Stackoverflow讨论,似乎没有任何工作.这是我目前的活动:
public class Paydownsnowball extends Activity {int aAmt;String debtExtraPayment;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.snowball); final button plusTen = (button) findVIEwByID(R.ID.buttonp10); final button plusFive = (button) findVIEwByID(R.ID.buttonp5); final button minusFive = (button) findVIEwByID(R.ID.buttonm5); final button minusTen = (button) findVIEwByID(R.ID.buttonm10); SharedPreferences sharedPref= getSharedPreferences("chaosdatasnowball", 0); debtExtraPayment = sharedPref.getString("debtExtraPayment", null); debtExtraPayment ="0"; TextVIEw addamount = (TextVIEw) findVIEwByID(R.ID.dispAddamt); addamount.setText(debtExtraPayment); aAmt = Integer.parseInt(debtExtraPayment); plusTen.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { aAmt = aAmt + 10; TextVIEw addamount = (TextVIEw) findVIEwByID(R.ID.dispAddamt); addamount.setText(aAmt); } }); plusFive.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { aAmt = aAmt + 5; TextVIEw addamount = (TextVIEw) findVIEwByID(R.ID.dispAddamt); addamount.setText(aAmt); } }); minusTen.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { aAmt = aAmt - 10; TextVIEw addamount = (TextVIEw) findVIEwByID(R.ID.dispAddamt); addamount.setText(aAmt); } }); minusFive.setonClickListener(new OnClickListener() { public voID onClick(VIEw v) { aAmt = aAmt - 5; TextVIEw addamount = (TextVIEw) findVIEwByID(R.ID.dispAddamt); addamount.setText(aAmt); } }); debtExtraPayment = String.valueOf(aAmt); addamount.setText(debtExtraPayment); SharedPreferences.Editor editor= sharedPref.edit(); editor.putString("debtExtraPayment", debtExtraPayment).commit();}以下是点击plusFive按钮时出现的logcats:
11-09 15:15:57.907: E/AndroIDRuntime(695): FATAL EXCEPTION: main11-09 15:15:57.907: E/AndroIDRuntime(695): androID.content.res.Resources$NotFoundException: String resource ID #0x511-09 15:15:57.907: E/AndroIDRuntime(695): at androID.content.res.Resources.getText(Resources.java:201)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.Widget.TextVIEw.setText(TextVIEw.java:2817)11-09 15:15:57.907: E/AndroIDRuntime(695): at biz.mIDl.debtsnowball.Paydownsnowball.onClick(Paydownsnowball.java:47)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.vIEw.VIEw.performClick(VIEw.java:2408)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.vIEw.VIEw$PerformClick.run(VIEw.java:8816)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.os.Handler.handleCallback(Handler.java:587)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.os.Handler.dispatchMessage(Handler.java:92)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.os.Looper.loop(Looper.java:123)11-09 15:15:57.907: E/AndroIDRuntime(695): at androID.app.ActivityThread.main(ActivityThread.java:4627)11-09 15:15:57.907: E/AndroIDRuntime(695): at java.lang.reflect.Method.invokeNative(Native Method)11-09 15:15:57.907: E/AndroIDRuntime(695): at java.lang.reflect.Method.invoke(Method.java:521)11-09 15:15:57.907: E/AndroIDRuntime(695): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)11-09 15:15:57.907: E/AndroIDRuntime(695): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:626)11-09 15:15:57.907: E/AndroIDRuntime(695): at dalvik.system.NativeStart.main(Native Method)11-09 15:15:59.467: I/Process(695): Sending signal. PID: 695 SIG: 9解决方法:
问题在于这样的线条
addamount.setText(aAmt);其中aAmt是一个int.这会查找ID为aAmt的资源.你需要首先将它转换为String
addamount.setText(String.valueOf(aAmt));有重载的setText()方法. See the docs
This post goes into some more detail as to how this actually works
总结以上是内存溢出为你收集整理的android – setText无法在TextView中将数字显示为文本全部内容,希望文章能够帮你解决android – setText无法在TextView中将数字显示为文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)