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

2015-11-25 19:24:41 +08:00
 xhuuanniqege

我在用 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.
这是为什么?求大神看看

1871 次点击
所在节点    问与答
2 条回复
jedrek
2015-11-26 10:01:02 +08:00
可尝试将 EditText 的设置去掉试试
将 mContent toString()后再 setText 试试
xhuuanniqege
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());也可以实现同样的效果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/238919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX