在带有static
的java / android API中是否有任何“技巧”可以同时更改片段中具有相同ID的对象中的文本?
假设我有一个静态字符串:
private static String buttonText = "Today";
并且每个片段都有一个按钮:
Button mButton = (Button) getView().findViewById(R.id.change_button);
mBotton.setText(buttonText);
要更改该片段上的文字:
buttonText = "Tomorrow";
mBotton.setText(buttonText);
我可以自动将文本更改为其他片段吗?保持List<Button>
我唯一的方法(循环列表并为每个列表设置文本)?
答案 0 :(得分:0)
也许这正是您所需要的:http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity
你可以用这个来构建一个完美的Oberserver-Like行为。
您创建了一个界面,我们将其称为OnButtonTextChangeListener
,它定义了一种方法void onButtonTextChangeWanted( String buttontext )
您的Activity实现了该接口,您的Fragments确保添加它们的活动。 (所有在链接文章中描述)
在该实现中,您更改了包含按钮文本的Activity的成员,然后通过调用片段上的方法changeButtonText( buttontext )
来通知所有已注册的更改片段,该片段执行您在问题中所写的内容:更改该片段上的按钮。这样,您可以通过附加的活动将channge分配给所有片段。
可能有更好的解决方案。我的Android有点生锈......