我在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
时,此代码会显示错误并导航回父活动。这可能是ActionBarActivity
中的错误。任何解决方法?覆盖onMenuItemSelected(int featureId, MenuItem item)
不起作用,因为它已在ActionBarActivity
中成为最终版。
答案 0 :(得分:1)
对于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();
}
根据Javadoc对该方法的返回值:
如果向上导航成功完成且此活动已完成,则返回
true
,否则为false
。