2016-05-23 66 views
0

我加入了按鈕,在我的Android活動的操作欄以這樣的方式如何在Android的ActionBar中爲上按鈕添加偵聽器?

活動:

getSupportActionBar()setDisplayHomeAsUpEnabled(真);

清單:

機器人:parentActivityName = 「MenuActivity」>

它做工精細,但現在我想添加活動之間的過渡效果。 此轉換效果很好:

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

但是,我應該把這個轉換代碼?我沒有任何監聽器在操作欄中的後退按鈕。

謝謝你們的建議

回答

2

在操作欄上按鈕被視爲與它android.R.id.home菜單項,你可以在閱讀the docs。在那裏,你可以發現,你可以使用此代碼處理就可以點擊:

@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); 
} 
0

命令setSupportActionBar(工具欄)後,添加這一點;

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

如果您在動作條,那麼你必須在你的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); 
} 

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

相關問題