android – 如何检测是否按下了向上按钮

前端之家收集整理的这篇文章主要介绍了android – 如何检测是否按下了向上按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的活动中,操作栏仅显示左箭头和活动的标题.

当我按向左箭头时,活动将返回到上一个活动,但在onKeyUp,OnkeyDown和OnBackPressed方法中没有注册任何事件.

但是当我按下手机上的Back键(在底部)时,活动将返回到前一个,并且onKeyUp,OnKeyDown和OnBackPressed上的所有方法都会注册一个事件(在logcat中).

如何捕获左箭头(我认为它被称为UP按钮)?

我需要捕获密钥的原因是在onPause方法中知道活动是由用户而不是系统销毁的(例如,如果用户切换到另一个活动).

通过进一步研究他的问题我发现UP按钮给出了一个由onOptionsItemSelected方法捕获的事件,因为菜单上没有其他按钮,我知道它就是这个按钮.

解决方法

http://developer.android.com/guide/topics/ui/actionbar.html#Handling

处理对操作项的点击

用户按下某个动作时,系统将调用您的活动的onOptionsItemSelected()方法.使用传递给此方法的MenuItem,您可以通过调用getItemId()来识别该操作.这将返回标记的id属性提供的唯一ID,以便您可以执行相应的操作.例如:

@Override 
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items 
    switch (item.getItemId()) {


        case android.R.id.home:
            onUpButtonPressed(); 
            return true; 



        case R.id.action_search:
            openSearch(); 
            return true; 
        case R.id.action_compose:
            composeMessage(); 
            return true; 
        default: 
            return super.onOptionsItemSelected(item);
    } 
}

Note: If you inflate menu items from a fragment,via the Fragment
class’s onCreateOptionsMenu() callback,the system calls
onOptionsItemSelected() for that fragment when the user selects one of
those items. However,the activity gets a chance to handle the event
first,so the system first calls onOptionsItemSelected() on the
activity,before calling the same callback for the fragment. To ensure
that any fragments in the activity also have a chance to handle the
callback,always pass the call to the superclass as the default
behavior instead of returning false when you do not handle the item.

要将应用程序图标启用为向上按钮,请调用setDisplayHomeAsUpEnabled().例如:

@Override 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_details);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    ... 
}
原文链接:https://www.f2er.com/android/318398.html

猜你在找的Android相关文章