【问题标题】:NumberFormatException: Invalid int:""NumberFormatException: 无效的 int:""
【发布时间】:2018-01-25 13:56:02
【问题描述】:

在我的应用程序中,我正在进行语言本地化。它与按钮和 texview 完美配合,但无法更改 recyclerview 上的字符串

它说 NumberFormatException: Invalid int:""

  private void updateViews(String languageCode) {
                Context context = LocaleHelper.setLocale(MainActivity.this, languageCode);
                Resources resources = context.getResources();
                changelang.setText(resources.getString(R.string.changelanguage));
                languagename.setText(resources.getString(R.string.languagename));
 //error with following line                  object01.setDepname(Integer.parseInt(resources.getString(R.string.cultivation)));

            }
        });

堆栈跟踪

java.lang.NumberFormatException: Invalid int: "खेती"
                                                                                        at java.lang.Integer.invalidInt(Integer.java:138)
                                                                                        at java.lang.Integer.parse(Integer.java:410)
                                                                                        at java.lang.Integer.parseInt(Integer.java:367)
                                                                                        at java.lang.Integer.parseInt(Integer.java:334)
                                                                                        at com.example.rimapps.icar_iisr_ginger.MainActivity$1.updateViews(MainActivity.java:125)
                                                                                        at com.example.rimapps.icar_iisr_ginger.MainActivity$1.access$000(MainActivity.java:92)
                                                                                        at com.example.rimapps.icar_iisr_ginger.MainActivity$1$1.onClick(MainActivity.java:101)
                                                                                        at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1044)
                                                                                        at android.widget.AdapterView.performItemClick(AdapterView.java:310)
                                                                                        at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
                                                                                        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3081)
                                                                                        at android.widget.AbsListView$3.run(AbsListView.java:3947)
                                                                                        at android.os.Handler.handleCallback(Handler.java:742)
                                                                                        at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                        at android.os.Looper.loop(Looper.java:154)
                                                                                        at android.app.ActivityThread.main(ActivityThread.java:5523)
                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)

请帮忙

【问题讨论】:

  • 字符串文件中cultivation的值是多少?是数字吗?
  • 没有如下印地语文字 खेती
  • 那你为什么要把它转换成int
  • 我也尝试在字符串中做到这一点,请您查看我之前的帖子
  • 好的,提供链接

标签: android android-recyclerview localization numberformatexception parseint


【解决方案1】:

您正在尝试将字符串从您的资源转换为整数值。这是不可能的! 要支持多种语言,请使用所需的语言环境创建一个新的 string.xml。

https://developer.android.com/training/basics/supporting-devices/languages.html

【讨论】:

  • 我已经为两种语言创建了字符串 .xmls,并且它适用于按钮名称和文本视图。但不适用于回收商视图。那么在这种情况下我应该怎么做,我已经在我的模型类中将该文本定义为 int
【解决方案2】:

当您尝试将字符串从您的资源转换为整数值时。这是不可能的,所以尝试像这样改变模型类

public class ContentsDep {
    int depimage;
    String depname;

    public int getDepimage() {return depimage;
    }

    public void setDepimage(int depimage) {this.depimage = depimage;
    }

    public void setDepname(String depname) {
        this.depname = depname;
    }

    public String getDepname() {return depname;}

}

然后这样设置值

object01.setDepname(resources.getString(R.string.cultivation));

【讨论】:

  • 其实老哥我也试过这个,但是出现了新问题
  • 实际上,兄弟,我以前尝试过。但是它出现了一个新问题 final ContentsDep object01 = new ContentsDep(); object01.setDepname(R.string.varieties);//在这一行中它显示“内容中的 setDepname 不能应用于 int”所以我只是对字符串做了,然后我必须在适配器类中也更改它。然后之后我执行它显示一个长数字而不是字符串名称
猜你喜欢
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多