我在所有应用中管理相同的菜单。 因此,我管理BaseActivity,并使用BaseActivity扩展我的应用程序中的每个活动:
public class BaseActivity extends SherlockFragmentActivity {
static final int REQUEST_IMAGE_CAPTURE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle("");
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE
| ActionBar.DISPLAY_SHOW_CUSTOM);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
case R.id.menu_chat:
Toast.makeText(this, "Aqui va el chat", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_foto:
dispatchTakePictureIntent();
break;
case R.id.menu_settings:
Toast.makeText(this, "Aqui van los settings", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_sync:
Toast.makeText(this, "Aqui van los settings", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
避免在所有活动中编写ActionBar配置是一件好事。 但是现在,我想在操作栏中为所有活动添加“后退”按钮。 如果我在所有活动中写作,我都可以做到:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
和
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
并添加AndroidManifest.xml:
<activity
android:name="com.spg.movil.RutaActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_ruta" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.spg.movil.FragmentTabsPdv" />
</activity>
但如果我尝试将其集中在BaseActivity中,它将无法工作。 有没有办法在每个活动中只写一次后退按钮图标???
答案 0 :(得分:0)
进入你的活动并点击ctrl + space然后在Back上输入并按Enter键。然后,您可以覆盖整个活动的方法。