onOptionsItemSelected ActionBarActivity 不遵守 false return

onOptionsItemSelected ActionBarActivity doesn't respect false return

我在 ActionBarActivity:

中有一些代码看起来像这样
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent returnIntent = new Intent();
            if (isNameNull()) {
                namePicker.setError(getString(R.string.warning_name_should_not_be_empty));
                Log.d(TAG, "child name is empty");
                return false;
            }
    }
    return super.onOptionsItemSelected(item);
}

这段代码只是为了在 EditText 中显示一个错误。当我使用 FragmentActivty 时它工作正常。但是当我使用 ToolBar 切换到 ActionBarActivity 时,此代码显示错误并导航回父 activity。这可能是 ActionBarActivity 中的错误。任何解决方法?覆盖 onMenuItemSelected(int featureId, MenuItem item) 不起作用,因为它已在 ActionBarActivity.

中完成

对于 ActionBarActivity,您可以覆盖 onSupportNavigateUp() 以在按下向上按钮时执行自定义行为,而不是在 onOptionsItemSelected() 中处理它:

@Override
public boolean onSupportNavigateUp() {
  if (isNameNull()) {
     namePicker.setError(getString(R.string.warning_name_should_not_be_empty));
     Log.d(TAG, "child name is empty");
     return false;
  }
  return super.onSupportNavigateUp();
}

根据关于该方法 return 值的 Javadoc:

returns true if Up navigation completed successfully and this Activity was finished, false otherwise.