android–setText无法在TextView中将数字显示为文本

android–setText无法在TextView中将数字显示为文本,第1张

概述我有4个按钮和1个TextView.我希望每个按钮在TextView中从值(解析为int)中添加或减去不同的量.当我点击其中一个按钮时,它会抛出致命错误(如下所示).我搜索了一些其他Stackoverflow讨论,似乎没有任何工作.这是我目前的活动:publicclassPaydownSnowballextendsActivity{intaA

我有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中将数字显示为文本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1104045.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存