Ответ 1
Если вы используете ActionbarCompat код, предоставленный Google, вы можете получить доступ к значку дома через класс ActionBarHelperBase.java для API v4 и далее.
//code snippet from ActionBarHelperBase.java
...
private void setupActionBar() {
final ViewGroup actionBarCompat = getActionBarCompat();
if (actionBarCompat == null) {
return;
}
LinearLayout.LayoutParams springLayoutParams = new LinearLayout.LayoutParams(
0, ViewGroup.LayoutParams.MATCH_PARENT);
springLayoutParams.weight = 1;
// Add Home button
SimpleMenu tempMenu = new SimpleMenu(mActivity);
SimpleMenuItem homeItem = new SimpleMenuItem(tempMenu,
android.R.id.home, 0, mActivity.getString(R.string.app_name));
homeItem.setIcon(R.drawable.ic_home_ftn);
addActionItemCompatFromMenuItem(homeItem);
// Add title text
TextView titleText = new TextView(mActivity, null,
R.attr.actionbarCompatTitleStyle);
titleText.setLayoutParams(springLayoutParams);
titleText.setText(mActivity.getTitle());
actionBarCompat.addView(titleText);
}
...
Вы должны иметь возможность изменять код на домашней кнопке, доступной для действий, расширяющих ActionBarActivity и изменяя их таким образом.
Honeycomb кажется немного сложнее, и, похоже, он не дает такого легкого доступа. Предположим, что его id также должен быть android.R.id.home, поэтому вы можете извлечь это из представления в ActionBarHelperHoneycomb.java