2013-10-28

【Android】ActionBar 加入返回鍵

延續 啟用 Support Library 的 ActionBar

新增一個 Activity,名為 ChildActivity,在 AndroidManifest.xml 稍做修改

  1. <activity
  2. android:name="com.example.v7.ChildActivity"
  3. android:label="@string/title_activity_child"
  4. android:parentActivityName="com.example.v7.MainActivity"
  5. android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
  6. <!-- Parent activity meta-data to support 4.0 and lower -->
  7. <meta-data
  8. android:name="android.support.PARENT_ACTIVITY"
  9. android:value="com.example.v7.MainActivity" />
  10. </activity>


同樣地,ChildActivity 繼承自 ActionBarActivity
  1. public class ChildActivity extends ActionBarActivity
  2. {
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState)
  5. {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_child);
  8. // 這段指令是重點
  9. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  10.  
  11. }
  12.  
  13. ...
  14. ...
  15. }


可以看到螢幕左上角小綠人旁出現了一個向左的箭頭,代表返回,按一下小綠人就會回到主畫面了。




相關筆記 ----
【Android】設定 Support Library
【Android】啟用 Support Library 的 ActionBar
【Android Studio】回傳資料給 Parent Activity
 

2 則留言:

  1. protected void onCreate1(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    getActionBar().setDisplayHomeAsUpEnabled(true);


    }



    }
    這會出現很多錯誤,麻煩幫解答
    無法出現返回功能
    謝謝

    回覆刪除
  2. 1. 這樣沒頭沒腦的,我沒法幫...出現很多錯誤...什麼錯誤?


    2. 如果您是從您的源碼複製貼上來的,那 ----

    protected void onCreate1(Bundle savedInstanceState)

    應該是

    @Override
    protected void onCreate(Bundle savedInstanceState)


    3. 這是以 Eclipse 開發時期的筆記,現在新的概念是 "material design",Android Studio 的開發方式也不大一樣了。

    回覆刪除