2010-07-20 64 views
1

我想要一个“Utils”类,它将在我的代码中使用几种方法。例如,我有一个带有textview和两个ImageButton的顶栏,它们必须在不同的活动中显示不同的文本和图标。如何从不扩展Activity的类获取视图引用?

,我发现自己对每一个活动写这样的东西:

(TextView) topBarText = (TextView) findViewById(R.id.topBarText); 
topBarText.setText(R.id.mytextForThisView); 

我想在我的整个应用findViewById一次,调用一个方法setupTopBar(String text, R.id.iconForImageButton1, R.id.iconForImageButton2),甚至传递当前活动的ID,让方法找出文本和图像中显示的内容。我创建了类Util,但它不扩展Activity。问题是,如果没有,findViewById不可访问,所以我不能使用它。

在Android中做这种事情的模式是什么?

回答

4

您的辅助方法,应该看起来像

public static void setTopBarText(Activity act, int textId){ 
    (TextView) topBarText = (TextView)act.findViewById(R.id.topBarText); 
    topBarText.setText(textId); 
} 

然后你就可以从活动中做静态导入,并呼吁

setTopBarText(this, R.id.mytextForThisView); 
0

答案是不利于一些情况。

这是我的方法:

In your Activity: 
YouCustomClassObject.passView((View)findViewById(R.id.aview)); 

使用的参数传递就可以解决这样的问题。

相关问题