我的应用程序的所有活动中的后退按钮

时间:2014-03-25 18:53:16

标签: android navigation actionbarsherlock

我在所有应用中管理相同的菜单。 因此,我管理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中,它将无法工作。 有没有办法在每个活动中只写一次后退按钮图标???

1 个答案:

答案 0 :(得分:0)

进入你的活动并点击ctrl + space然后在Back上输入并按Enter键。然后,您可以覆盖整个活动的方法。