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