如何直接在我的xml android中使用onBackPressed():onClick

时间:2017-11-03 12:21:23

标签: android

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/back"
        android:icon="@drawable/ic_back"
        android:title="Back"
        app:showAsAction="always|collapseActionView"
        android:onClick="onBackPressed"
        />

</menu>

我想访问覆盖功能

 @Override
public void onBackPressed() {
    super.onBackPressed();
    startActivity(new Intent(CaseInfoActivity.this,DashBoardActivity.class));
    finish();
}

直接按下后退按钮,我也将xml中的行设置为

 android:onClick="onBackPressed"

但它仍然无法运作! 首先这可能吗? 如果是的话,那怎么样?

3 个答案:

答案 0 :(得分:4)

你可以使用android数据绑定来实现它。

使用您的活动变量创建布局文件:

<variable name="activity" type="Activity">

onClick调用onBackPressed()方法:

android:onClick='@{() -> activity.onBackPressed()}'

并添加您的活动

getBinding().setActivity(this);

请查看databinding documentation以获取更多信息。

答案 1 :(得分:2)

试试这个

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == R.id.back) {
        onBackPressed();// it will call the onBackPressed() method
        return true;
    }
    return false;
}

或尝试此操作以获取操作栏后退箭头的点击事件

@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
    if (menuItem.getItemId() == android.R.id.home) {
        Logd("Home pressed","");
    }
    return super.onOptionsItemSelected(menuItem);
}

答案 2 :(得分:0)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC