我有一個我決定重寫的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的值發生變化時它將自動更新?某種綁定?完全適用於這個