[英]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.