簡體   English   中英

如何在Android的ActionBar中為向上按鈕添加偵聽器?

[英]How to add a listener for the up button in ActionBar on Android?

我以這種方式在Android活動的操作欄中添加了向上按鈕:

活動:

getSupportActionBar()。setDisplayHomeAsUpEnabled(true);

表現:

android:parentActivityName =“。MenuActivity”>

它工作正常,但現在我想在活動之間添加過渡效果。 此過渡效果很好:

Intent intent = new Intent(getApplicationContext(),MenuActivity.class); startActivity(intent); overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);

但是我應該把這個過渡代碼放在哪里? 我在操作欄中沒有任何用於后退按鈕的偵聽器。

謝謝建議

在命令setSupportActionBar(toolbar);之后添加它

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // your code
        }
    });

您可以在docs中閱讀,操作欄中的向上按鈕被視為ID為android.R.id.home的菜單項。 您可以在此處找到使用以下代碼處理點擊的操作:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // Respond to the action bar's Up/Home button
        return false;
    }
    return super.onOptionsItemSelected(item);
}

如果操作欄中有一個后退按鈕,則必須在menu.xml文件中進行了定義。 因此我們必須在Java文件中為該按鈕添加偵聽器。

這是menu.xml的樣子:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.sknandroidapps.skn.ptternlock.LockScreen">
<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never" />

因此,如果要將偵聽器添加到action_settings按鈕,則必須執行以下操作:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    noinspection SimplifiableIfStatement
       if (id == R.id.action_settings) {
         //here you have to put the transiction code.
         return true;
       }

    return super.onOptionsItemSelected(item);
}

將其應用於您的代碼,讓我知道它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM