2015-01-13 65 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传入,它在片段中膨胀,它很好!这是非常容易集成顺便说一句,这只是我没有得到它!