只需编写一次方法,然后在应用程序中的"android:onClick"中访问它

Raj*_*ran 2 android onclick android-xml

我的申请表中有一个标题栏.标题栏有一个按钮.点击该按钮,我显示信息活动.现在,据我所知,android:onClick需要在活动内部引用一个公共方法,该方法设置了xml setContentView().现在,由于单击按钮的逻辑在整个应用程序中都是相同的,所以我想要的是,我只会说这个方法showInfoScreen(View view)并将其放在那个按钮onClick属性中.我不需要在任何地方写相同的方法.可能吗?

Jas*_*son 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

那么你所有派生的Activitys都会延伸BaseActivity而不是Activity.

这样做的美妙之处在于任何Activity扩展此类的内容都会自动获得此功能.在派生类中不需要编码,只是在BaseActivity.您Activity的所有合同中唯一的合同将是R.id.button您在其内容中为其命名的任何ID.