我的应用程序中有一个标题栏。并且标题栏有一个按钮。单击该按钮时,我会显示信息活动。现在,据我所知,android:onClick
需要在 .xml 中设置 xml 的活动中引用公共方法setContentView()
。现在,由于该按钮单击的逻辑在整个应用程序中都是相同的,所以我想要的是,我将只说一次该方法showInfoScreen(View view)
并将其放入该按钮onClick
属性中。而且我不需要到处写相同的方法。是否可以?
问问题
258 次
3 回答
5
当然有可能。写一个Activity
类,然后让你所有的Activity
s 扩展它。例如:
public abstract class BaseActivity extends Activity {
@Override
public void setContentView( int layoutResID ) {
super.setContentView( layoutResID );
findViewById(R.id.button).setOnClickListener(new OnTitleBarButtonClickListener());
}
private void showInfoScreen() {
// Show the info screen
}
private class OnTitleBarButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
showInfoScreen();
}
}
}
然后你所有的派生Activity
s 将扩展BaseActivity
而不是Activity
.
这样做的好处是任何Activity
扩展这个类的东西都会自动获得这个特性。派生类中不需要编码,只需在BaseActivity
. Activity
您所有的s 将拥有的唯一合同将是拥有R.id.button
或您在其内容中命名的任何 id。
于 2012-04-09T07:01:15.220 回答
1
我认为您必须onclick
在要显示信息屏幕的每个活动中编写。
但是OnClick
您只需在每个 Activity 中调用 A 方法showInfoScreen(View view)
....
你应该创建类 Like...ShowInfo
并且有一个静态方法...
public class ShowInfo{
public static void showInfoScreen(View view,Context c){
//now dispay info here
}
}
写ShowInfo.showInfoScreen(v,YourClassName.this)
在你的onClick()
方法....
于 2012-04-09T06:56:34.907 回答
0
建议的示例Vinayak.B
如下:
public class yourAppUtils {
public static void yourMethod() {
// Do stuff
}
}
于 2012-04-09T06:55:46.807 回答