今早無聊查看了一下android官方文檔,最近對ActionBar很感興趣,它確實對我們的日常開發起到了很便捷的作用.
對於通過點擊ActionBar的Home按鈕返回,以前我只知道有一種方式:也就是
通過 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 設置ActionBar的Home按鈕可以點擊,
@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_home: android.R.id.home // 處理返回邏輯 return true; default: return super.onOptionsItemSelected(item); } }
第二種也是剛在官網看到的,在此記錄一下,防止以后忘記: 在manifest中明確的標明子Activity的父級關系的Activity
<application ... > ... <!-- The main/home activity (it has no parent activity) --> <activity android:name="com.example.myfirstapp.MainActivity" ...> ... </activity> <!-- A child of the main activity --> <activity android:name="com.example.myfirstapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> </application>
然后再onCreat()方法中調用Home按鈕可點擊:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_displaymessage); getSupportActionBar().setDisplayHomeAsUpEnabled(true); // If your minSdkVersion is 11 or higher, instead use: // getActionBar().setDisplayHomeAsUpEnabled(true); }
然后不用做其他的處理,當我們點擊home按鈕時,Android系統會自動為我們返回父級Activity.