2013-10-28

【Android】ActionBar 加入返回鍵

延續 啟用 Support Library 的 ActionBar

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

<activity
    android:name="com.example.v7.ChildActivity"
    android:label="@string/title_activity_child"
    android:parentActivityName="com.example.v7.MainActivity"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
            
    <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.v7.MainActivity" />
            
</activity>


同樣地,ChildActivity 繼承自 ActionBarActivity
public class ChildActivity extends ActionBarActivity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_child);
  
        // 這段指令是重點
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    }

    ...
    ...
}


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




相關筆記 ----
【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 的開發方式也不大一樣了。

    回覆刪除