V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xhuuanniqege
V2EX  ›  问与答

Android EditText 的问题,真是见了鬼了

  •  
  •   xhuuanniqege · 2015-11-25 19:24:41 +08:00 · 2047 次点击
    这是一个创建于 3318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在用 EditText 做计算器的屏幕,对 EditText 的设置是这样的

    setInputType(InputType.TYPE_NULL);
    setTextDirection(TEXT_DIRECTION_RTL);
    setTextSize(mCurrentTextSP);
    

    我写了个 appendTail 函数

    public void appendTail(String c) {
          // mContent 是一个 StringBuffer
        mContent.append(c);
        Log.d(TAG, mContent.toString());
        setText(mContent);
    }
    

    当我输入了某个数比如 697 ,然后再输入'+'号时,屏幕上本应该是 697+,但是却总是显示+697 ,然后如果在输入一个数,比如 8 ,这时却又变正常了,显示 697+8.
    这是为什么?求大神看看

    2 条回复    2015-11-26 18:40:05 +08:00
    jedrek
        1
    jedrek  
       2015-11-26 10:01:02 +08:00
    可尝试将 EditText 的设置去掉试试
    将 mContent toString()后再 setText 试试
    xhuuanniqege
        2
    xhuuanniqege  
    OP
       2015-11-26 18:40:05 +08:00
    @jedrek 确实是设置问题,本来想实现从右到左输入的 EditText ,
    setTextDirection(TEXT_DIRECTION_RTL);只对从右到左的字符,如阿拉伯语等有效。
    换成 setGravity(Gravity.RIGHT | Gravity.BOTTOM);并在每次 append 后 使用 CalculatorDisplay.this.setSelection(mContent.length());也可以实现同样的效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1481 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:14 · PVG 01:14 · LAX 09:14 · JFK 12:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.