2016-05-23 8 views
0

私は、このように私のアンドロイドアクティビティのアクションバーにボタンを追加しました:Android上でActionBarの上ボタンのリスナーを追加する方法は?

活動:。

getSupportActionBar()setDisplayHomeAsUpEnabled(真)。

マニフェスト:

アンドロイド:parentActivityName = "MenuActivity">

それが正常に動作しますが、今、私は活動の間にトランジションエフェクトを追加したいです。 この移行作業はうまくいきます:

意図インテント=新しいインテント(getApplicationContext()、MenuActivity.class); startActivity(インテント); overridePendingTransition(R.anim.slide_in_left、R.anim.slide_out_right);

ただし、この移行コードはどこに配置する必要がありますか?私はアクションバーの戻るボタンのリスナーを持っていません。アドバイスのみんなで

おかげ

答えて

2

アクションバーでアップボタンは、それ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); 
} 
0

は、コマンドsetSupportActionBar(ツールバー)の後にこれを追加します。あなたはthe docsで読むことができるよう

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

あなたのアクションバーの[戻る]ボタンを使用している場合、あなたはあなたのmenu.xmlファイルに定義されている必要があります。そのボタンのリスナーをJavaファイルに追加する必要があります。あなたはaction_settingsボタンにリスナーを追加したい場合はそう、あなたはこれをしなければならない

<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" /> 

:ここ

はmenu.xmlがどのように見えるかです

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

これをコードに適用し、それが動作するかどうか教えてください。

関連する問題