我的应用程序中有一个标题栏。标题栏有一个按钮。点击该按钮,我显示信息活动。现在,据我所知,android:onClick
需要在活动中引用一个公共方法,该方法在setContentView()
中设置了xml。现在,由于单击按钮的逻辑在整个应用程序中都是相同的,所以我想要的是,我只会说出showInfoScreen(View view)
方法并将其放在按钮onClick
属性中。我不需要在任何地方写相同的方法。有可能吗?
答案 0 :(得分:5)
当然有可能。写一个Activity
类,然后让所有Activity
扩展它。例如:
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
都会延伸BaseActivity
而不是Activity
。
这样做的好处在于,任何扩展此类的Activity
都会自动获得此功能。在BaseActivity
中,派生类中不需要编码。您的所有Activity
所拥有的唯一合同将是R.id.button
或您在其内容中为其命名的任何ID。
答案 1 :(得分:1)
我认为您必须在要显示infoscreen的每个Activity中编写onclick
。
但OnClick
你只需在每个活动中调用方法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()
答案 2 :(得分:0)
Vinayak.B
建议的示例如下:
public class yourAppUtils {
public static void yourMethod() {
// Do stuff
}
}