无法使用 Databind 检测 onNavigationItemSelected。如何在 Navigationview 中点击所有菜单项?
Cannot detect onNavigationItemSelected using Databind. How to get all menu item click in Navigationview?
我试过这段代码但是没有用。在我的 class 中,我实现了 onNavigationItemSelected
。
。我已经尝试过这个 https://medium.com/@oldergod/bottomnavigationview-callback-and-and-databinding-9775b0c31d38。但这不起作用
仪表板布局...
<data>
<import type="android.view.View" />
<variable
name="navigationItemSelectedListener"
type="al_logistics.app.com.al_logistics.Dashboard"/>
</data>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header_manu"
app:navigationItemSelectedListener="@{navigationItemSelectedListener::onNavigationItemSelected}"
app:menu="@menu/list_menu"/>
这是我的 onNavigationItemSelected
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Toast.makeText(this, "Clicked", Toast.LENGTH_SHORT).show();
return true;
}
请检查你是否已经完成this.You需要实现监听器否则它不会work.Please让我知道解决方案是否有效
binding = DataBindingUtil.setContentView(this, R.layout.activity_dashboard);
binding.navView.setNavigationItemSelectedListener(this);
并从 XML 中删除此行:
app:navigationItemSelectedListener="@{navigationItemSelectedListener::onNavigationItemSelected}"
问题是 navigationItemSelectedListener 请求监听器,而不是实际函数。
正确的使用方法是:
app:navigationItemSelectedListener="@{ menuItem -> navigationItemSelectedListener.onNavigationItemSelected(menuItem) }"
这种方式在数据绑定中创建监听器。
其他解决方案(顾名思义 navigationItemSelectedListener
暗示)将实现 BottomNavigationView.OnNavigationItemSelectedListener
然后在布局中
app:navigationItemSelectedListener="@{navigationItemSelectedListener}"
我试过这段代码但是没有用。在我的 class 中,我实现了 onNavigationItemSelected
。
。我已经尝试过这个 https://medium.com/@oldergod/bottomnavigationview-callback-and-and-databinding-9775b0c31d38。但这不起作用
仪表板布局...
<data>
<import type="android.view.View" />
<variable
name="navigationItemSelectedListener"
type="al_logistics.app.com.al_logistics.Dashboard"/>
</data>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header_manu"
app:navigationItemSelectedListener="@{navigationItemSelectedListener::onNavigationItemSelected}"
app:menu="@menu/list_menu"/>
这是我的 onNavigationItemSelected
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Toast.makeText(this, "Clicked", Toast.LENGTH_SHORT).show();
return true;
}
请检查你是否已经完成this.You需要实现监听器否则它不会work.Please让我知道解决方案是否有效
binding = DataBindingUtil.setContentView(this, R.layout.activity_dashboard);
binding.navView.setNavigationItemSelectedListener(this);
并从 XML 中删除此行:
app:navigationItemSelectedListener="@{navigationItemSelectedListener::onNavigationItemSelected}"
问题是 navigationItemSelectedListener 请求监听器,而不是实际函数。 正确的使用方法是:
app:navigationItemSelectedListener="@{ menuItem -> navigationItemSelectedListener.onNavigationItemSelected(menuItem) }"
这种方式在数据绑定中创建监听器。
其他解决方案(顾名思义 navigationItemSelectedListener
暗示)将实现 BottomNavigationView.OnNavigationItemSelectedListener
然后在布局中
app:navigationItemSelectedListener="@{navigationItemSelectedListener}"