gpt4 book ai didi

Android:Nav Drawer 后退按钮无法完成应用程序

转载 作者:行者123 更新时间:2023-11-30 02:50:12 29 4
gpt4 key购买 nike

我正在开发使用抽屉导航的应用程序。不幸的是我不知道,当用户在主屏幕上按下后退按钮时,我该如何完成这个应用程序?我试图覆盖后退按钮并在那里完成我的 Activity ,但这不起作用。 Activity 周而复始..

我正在尝试更多示例,例如:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
finish();
}
return super.onKeyDown(keyCode, event);
}

或覆盖

 @Override
public void onBackPressed() {
finish();
}

//编辑这是我的主要 Activity 代码,其中大部分是由 Android Studio 生成的:

public class MainActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks {

/**
* Fragment managing the behaviors, interactions and presentation of the navigation drawer.
*/
private NavigationDrawerFragment mNavigationDrawerFragment;

/**
* Used to store the last screen title. For use in {@link #restoreActionBar()}.
*/
private CharSequence mTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();

// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout));
}

@Override
public void onNavigationDrawerItemSelected(int position, boolean fromSavedInstanceState) {
// update the main content by replacing fragments
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, EmailListFragment.newInstance(position))
.commit();
}

public void onSectionAttached(int number) {
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
break;
case 2:
mTitle = getString(R.string.title_section2);
break;
case 3:
mTitle = getString(R.string.title_section3);
break;
}
}

public void restoreActionBar() {
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen()) {
// Only show items in the action bar relevant to this screen
// if the drawer is not showing. Otherwise, let the drawer
// decide what to show in the action bar.
getMenuInflater().inflate(R.menu.main, menu);
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

/**
* Should close application when back button is pressed, but doesn't work yet
*
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
this.onDestroy();
finish();
}
return super.onKeyDown(keyCode, event);
}
}

最佳答案

我认为代码没有任何问题 - 这是有道理的,因为大部分代码来自模板 - 除了我建议使用 onDestroy。它必须是 Android Studio。我会尝试旁加载 APK 或创建一个新项目并复制代码。如果这些都不起作用,那一定是一个错误。由于它必须在 Activity 中,我会尝试扩展 Activity 而不是 ActionBarActivity(这将您限制为 SDK v14+),因为这样可以避免使用支持库,从问题中删除变量。

关于Android:Nav Drawer 后退按钮无法完成应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24334187/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com