我有一個應用程序,我需要顯示一個數字列表,但數字需要根據它們的值進行格式化。正數表示負數,正數表示爲加粗。此外,該數字在文本視圖中始終顯示爲正值。我試着TextView的擴展通過setText重寫這樣:基於文本值格式化的TextView文本
@Override
public void setText(CharSequence text, TextView.BufferType type) {
double number = Double.parseDouble(text.toString());
if (number > 0) {
this.setTypeface(this.getTypeface(), BOLD);
} else {
this.setTypeface(this.getTypeface(), NORMAL);
number = Math.abs(number);
}
super.setText(number + "", type);
}
這也不太工作,爲的setText正在呼籲同MyTextView多次。這導致每個數字都顯示爲大膽,因爲下次通過時它是積極的。
我想將這個邏輯保存在一個小部件中,而不是設置文本的位置,因爲這在我的應用程序中是很常見的事件。
有沒有一種方法可以在小部件中做到這一點?
你試過http://plugins.jquery.com/plugin-tags/number-format – mozillanerd
,而不是覆蓋的setText(CharSequence的)爲什麼不能讓一個新的setText(雙)。另外,如果我在嘗試獲取格式化文本時正確記得,我使用fromHtml()而不是setTypeFace()有更好的運氣。 – FoamyGuy
我想過這樣做,但我在一對適配器中使用了MyTextView。我可以推出我自己的適配器來使用setText(double),但我認爲在MyTextView中全部處理它會容易一些。 – Chewie