2015-01-13 93 views
-1

我有一個我決定重寫的android應用程序,其中一個重寫的原因是因爲我可以根據類中的變量設置10個以上的TextViews,例如:自動/動態更新Android中的TextView文本

MyClass myClass = new MyClass(); 
myClass.myNumber = 5; // inside MyClass - public int myNumber; 

LinearLayout mainLayout = (LinearLayout) view.findViewById(R.id.mainLayout); 

TextView myTextView = new TextView(getActivity()); //In a fragment 
myTextView.setText(String.format("myNumber currently has a value of %d", myClass.myNumber)); 

mainLayout.addView(myTextView); 
return view; 

到現在爲止,我一直在使用.setOnClickListener在不改變mynumber的按鈕/意見,再次設置視圖的文本時的mynumber的變化,然後調用.invalidate值()重繪TextView,這工作得很好,但我使用這種方法非常沉重,代碼變得相當重複,更改一個整數可能會影響很多視圖(所有這些都會以不同的方式使用它 - 例如不同的措辭或計算方式(例如myNumber * 2)) 。我想這是因爲它在TextView中是一個不可變的字符串。

我試圖創建一個實現Observer的自定義TextView(使MyClass擴展Observable),並且在更新方法中,我可以使其無效,但它仍然具有相同的文本。我也嘗試創建單個元素數組,試圖傳遞引用而不是希望當它被更改,然後視圖無效時,它將拾取新值,但文本仍然保持不變。

如何獲取一個TextView,當myNumber的值發生變化時它將自動更新?某種綁定?完全適用於這個

回答

0

Bindroid作品,只爲用戶的註釋,在我用getActivity()這導致它不工作的片段使用示例應用程序正在使用this從一個活動所以使用活動綁定方法被稱爲片段,正確地,在圖書館中挖掘我發現一個綁定方法,需要一個視圖,並在我的view傳入,它在片段中膨脹,它很好!這是非常容易集成順便說一句,這只是我沒有得到它!