Android 在安卓系统中,标题栏相同,但下面的视图不同?

Android 在安卓系统中,标题栏相同,但下面的视图不同?,android,button,android-activity,Android,Button,Android Activity,在我的一个Android应用程序中,我需要保持标题栏不变,但屏幕其余部分显示的视图会发生变化。因此,我为所有需要显示的视图采取了不同的活动,并在每个activitiononcreate方法中设置了标题栏 现在,问题是我在标题栏中有一个按钮,需要对其单击事件执行某些操作。在每个活动类中编写相同的事件处理代码非常麻烦。有没有其他办法,只要标题栏的按钮上有一个点击事件,我们就可以拥有相同的功能,而不用在所有活动类中编写相同的代码 我们可以使用ViewGroup吗?我对ViewGroup不太了解。在Vi

在我的一个Android应用程序中,我需要保持标题栏不变,但屏幕其余部分显示的视图会发生变化。因此,我为所有需要显示的视图采取了不同的活动,并在每个activitiononcreate方法中设置了标题栏

现在,问题是我在标题栏中有一个按钮,需要对其单击事件执行某些操作。在每个活动类中编写相同的事件处理代码非常麻烦。有没有其他办法,只要标题栏的按钮上有一个点击事件,我们就可以拥有相同的功能,而不用在所有活动类中编写相同的代码

我们可以使用ViewGroup吗?我对ViewGroup不太了解。在ViewGroup中可以这样做吗

如果有人知道解决方案,请告诉我

谢谢和问候
Sunil

< P>如果您在扩展<<代码>活动< /代码>的几个类之间共享视图元素和功能,您可能需要考虑创建一个普通的超类来处理这个重叠。

最好的解决方法是保持这样的基本活动。

        public class HeaderBaseActivity extends AppCompatActivity{
        @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                getMenuInflater().inflate(R.menu.menu_main, menu);

                mAppPreferences = AppUtil.getAppPreferences(this);
                item_patients =  menu.findItem(R.id.item_patients);
                setBatchCountOnMenu(0);

                RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
                mRealm = Realm.getInstance(realmConfig);
                mDotor = new Gson().fromJson(mAppPreferences.getString(Constants.SETTINGS_OBJ_DOCTOR, ""), Doctor.class);
                mAppPreferences = AppUtil.getAppPreferences(this);
                return super.onCreateOptionsMenu(menu);

            }

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.action_logout:
                       /* DialogUtility.showShortToast(this, " Main manu Action Logout");*/
                        SharedPreferences.Editor Editor = mAppPreferences.edit();
                        Editor.putBoolean(Constants.SETTINGS_IS_LOGGED_IN, false);
                        Editor.apply();
                        clearRealmDB();
                        Intent loginIntent = new Intent(HeaderBaseActivity.this, LoginActivity.class);
                        loginIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                        startActivity(loginIntent);
                        finish();
                        break;
                    case R.id.item_patients:
                        System.out.println("current activity "+getApplicationContext());
                        Intent mPatientListIntent = new Intent(HeaderBaseActivity.this, PatientSummaryInfoActivity.class);
                        mPatientListIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(mPatientListIntent);
                        break;

                    case R.id.action_doctor_profile:
                        openDialogOfDoctorProfile();
                        break;   
                }
                return super.onOptionsItemSelected(item);
            }


        }


    Your other activities can extend the above activity like this:

        public class MainActivity extends HeaderBaseActivity{
         protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                ButterKnife.bind(this);
         setSupportActionBar(toolbar);
            }

        }