我想要一个类“Utils”,它将在我的代码中使用几种方法。例如,我有一个带有textview
和两个ImageButton
的顶栏,必须在不同的活动中显示不同的文字和图标。
我发现自己在每个活动上写这样的东西:
(TextView) topBarText = (TextView) findViewById(R.id.topBarText);
topBarText.setText(R.id.mytextForThisView);
我想在我的整个应用程序中找到一次ViewById,然后调用方法setupTopBar(String text, R.id.iconForImageButton1, R.id.iconForImageButton2)
,或者甚至传递当前Activity的id,让方法找出文本和图像中显示的内容。
我创建了类Util
,但它没有扩展Activity
。问题是,如果没有,findViewById
无法访问,所以我无法使用它。
在Android中执行类似操作的模式是什么?
答案 0 :(得分:5)
您的帮助方法应该类似于
public static void setTopBarText(Activity act, int textId){
(TextView) topBarText = (TextView)act.findViewById(R.id.topBarText);
topBarText.setText(textId);
}
然后你可以从Activity进行静态导入并调用
setTopBarText(this, R.id.mytextForThisView);
答案 1 :(得分:0)
答案对某些情况不利。
这是我的方法:
In your Activity:
YouCustomClassObject.passView((View)findViewById(R.id.aview));
使用参数传递可以解决这类问题。