【问题标题】:On EditText Changed Listener, Integer.parseInt() does not work在 EditText Changed Listener 上,Integer.parseInt() 不起作用
【发布时间】:2012-08-16 22:13:48
【问题描述】:

当添加解析文本到整数的行时,应用程序停止,并且没有此行也可以正常工作

final TextView secNumber= (TextView)findViewById(R.id.secNumber);
final EditText mainNumber=(EditText)findViewById(R.id.mainNumber);

mainNumber.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable S){
        secNumber.setText(Integer.parseInt(S.toString())*100);
    }

    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
            int arg3) {
        // TODO Auto-generated method stub

    }

    public void onTextChanged(CharSequence s, int start, int before,
            int count) {
        // TODO Auto-generated method stub

    }
});

【问题讨论】:

    标签: android parsing listener onchange android-edittext


    【解决方案1】:

    试试这个:

     secNumber.setText((Integer.parseInt(S.toString())*100).toString());
    

    【讨论】:

      【解决方案2】:

      您需要找出 S 中的内容。显然,它不可解析。将parseInt 操作包装在try catch 块中,或使用“TryParse”,如here 所示。

      【讨论】:

      • 你能说得更具体点吗?我真的没想到它会解析S,因为S 中的内容已经无法解析。
      • 应用程序在使用“TryParse”时再次停止,如上图所示。没有区别
      【解决方案3】:

      您正在为 secNumber.setText(Integer) 提供一个整数,并且该函数可能需要一个字符串。在末尾放一个 toString()。

      试试类似的方法

      Integer  pipi= Integer.parseInt(S.toString())*100);
      secNumber.setText(pipi.toString());
      

      【讨论】:

        猜你喜欢
        • 2015-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-10
        相关资源
        最近更新 更多