My PreferenceActivity hoạt động tốt ngoại trừ một điều. Biểu tượng ActionBar, hoàn toàn trả về người dùng về hoạt động trước đó trong tất cả các hoạt động khác của tôi không hoạt động trong PreferenceActivity. Khi tôi nhấp vào biểu tượng nó nhấp nháy như thể nó sẽ trở lại hoạt động trước đó nhưng PreferenceActivity vẫn còn trên màn hình. Điều thú vị là nút quay lại sẽ đưa người dùng trở lại hoạt động trước đó. Có cách nào để làm cho biểu tượng Home của ActionBar hoạt động "bình thường" trong PreferenceActivity không?PreferenceBiểu tượng Homebar hành động chủ động sẽ không trở về nhà (không giống như ET :)
Đây là mã:
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set actionBar controls for Settings
TextView actionBarTitle = (TextView) findViewById(Resources.getSystem().getIdentifier("action_bar_title", "id", "android"));
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setIcon(R.drawable.ic_launcher);
actionBar.setDisplayShowTitleEnabled(true);
actionBarTitle.setTextColor(Color.WHITE);
actionBarTitle.setTextSize(16);
actionBar.setTitle(R.string.settings_menu_title);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { //Build.VERSION_CODES.ICE_CREAM_SANDWICH
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true); // show back arrow on title icon
actionBar.setDisplayShowHomeEnabled(true);
}
...... Handle prefs (all working fine).....
}
}
////// Và đoạn code gọi ////////
//Use menu button to access settings screen
@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onKeyDown(keycode, e);
} // [END onKeyDown (for menu click capture) ]
+1 nếu vì không có gì hơn lén một tham chiếu ET trong – Simon
Làm thế nào sẽ getActionBar() làm việc trong onCreate của bạn, nếu bạn đang kéo dài từ PreferenceActivity ?? –