2

我的应用程序中有一个标题栏。并且标题栏有一个按钮。单击该按钮时,我会显示信息活动。现在,据我所知,android:onClick需要在 .xml 中设置 xml 的活动中引用公共方法setContentView()。现在,由于该按钮单击的逻辑在整个应用程序中都是相同的,所以我想要的是,我将只说一次该方法showInfoScreen(View view)并将其放入该按钮onClick属性中。而且我不需要到处写相同的方法。是否可以?

4

3 回答 3

5

当然有可能。写一个Activity类,然后让你所有的Activitys 扩展它。例如:

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();
        }
    }
}

然后你所有的派生Activitys 将扩展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 回答