나는 몇 가지 활동으로 앱을 가지고 있습니다. 지금까지 나는 그것들 사이에 "하드 코드 된"계층 구조를 가지고 있었기 때문에 android : parentActivityName을 명시 적으로 각각의 (그러나 런처 활동으로) 설정했다. 그러나 이제는 하나 이상의 활동 메뉴에 설정을 추가했습니다.AppCompat의 "뒤로/위로"버튼을 "뒤로"시스템 버튼으로 사용하는 방법이 있습니까?
작업 표시 줄의 "뒤로"화살표를 시스템의 뒤로 버튼 (화면 하단)으로 사용하는 방법이 있습니까? 즉, parentActivityName이 설정되어 있으면 부모 액티비티로 돌아가고, 그렇지 않으면 액티비티를 닫고 이전 액티비티로 돌아갑니다.
이것은 시도했지만 작동하지 않습니다. actionBar.setDisplayHomeAsUpEnabled (true)를 호출하지 않으면 작업 표시 줄에 "뒤로"화살표가 없지만 Manifest에 parentActivityName이 설정되지 않은 활동에서이 화살표를 호출하면 예외가 발생합니다. 나는 화살을 클릭한다.
abstract public class BaseActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
final ActionBar actionBar = getSupportActionBar();
if (null != actionBar) {
actionBar.setDisplayHomeAsUpEnabled(getDisplayHomeAsUpEnabled());
}
}
protected abstract int getLayoutResourceId();
abstract protected boolean getDisplayHomeAsUpEnabled();
@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.
final int id = item.getItemId();
if (id == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
return true;
}
}
}
안드로이드 : parentActivityName이 Manifest에 설정되어 있지 않은 경우 화살표를 표시하는 데 여전히 도움이되지 않습니다. – Gavriel
@Gavriel 위의 코드와 함께'android : parentActivity'를 사용하지 말고'setDisplayHomeAsUpEnabled (true); '를 사용하십시오. 그 시스템의 버튼처럼 동작합니다. –
OK, 실제로 작동합니다. 이제는 모든 활동에 대해 actionBar.setDisplayHomeAsUpEnabled (true)를 호출 할 수 있습니다. – Gavriel