热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在导航抽屉活动中完成两种方式的数据绑定?

我正在项目中实现两种方式的数据绑定,但是无法在导航抽屉活动中进行数据绑

我正在项目中实现两种方式的数据绑定,但是无法在导航抽屉活动中进行数据绑定。我试过了,但它给出了一个错误。请提供相同的示例代码。

content_policy_info.xml



name="policyinfo"
type="com.exlservice.lifeprov1.service.model.GetPolicyInfoResponse" />
name="surrenderquote"
type="com.exlservice.lifeprov1.service.model.SurrenderQuoteResponse" />

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:id="@+id/c1"
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:cOntext=".view.ui.PolicyInfo"
tools:showIn="@layout/app_bar_policy_info">
android:layout_
android:background="#223d50"
android:layout_>
android:layout_
android:layout_
android:orientation="vertical">
android:layout_
android:orientation="vertical"
android:background="@drawable/policy_prime_info_bg"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
>
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:orientation="horizontal">
android:layout_
android:layout_marginLeft="5dp"
android:layout_
android:text="@{policyInfo.ProductId}"
android:textColor="#76c6db"
android:layout_weight="1"
android:typeface="serif"
android:text
android:id="@+id/id_fc_first_key"/>
android:layout_
android:textColor="#76c6db"
android:text
android:typeface="serif"
android:layout_
android:text="@{policyInfo.Contract}"
android:layout_weight="1"
android:id="@+id/id_fc_second_key"/>





PolicyInfo.java

public class PolicyInfo extends AppCompatactivity
implements NavigationView.OnNavigationItemSelectedListener {
APIInterface apiInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding= DataBindingUtil.setContentView(this,R.layout.activity_policy_info);
Intent intent = getIntent();
String sCompanyCode = intent.getStringExtra("CompanyCode");
String sPolicyNumber = intent.getStringExtra("PolicyNumber");
String sWayPoint = intent.getStringExtra("WayPoint");
Log.e("onCreate: ",sCompanyCode+" "+sPolicyNumber );
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String currentTime = sdf.format(new Date());
SurrenderQuoteInput surrenderQuoteInput = new SurrenderQuoteInput();
surrenderQuoteInput.setCoderID("TRN7");
surrenderQuoteInput.setCompanyCode("01");
PolicyDetailsReq policyDetailsReq= new PolicyDetailsReq();
policyDetailsReq.setCoderID("TRN7");
getPolicyInfoRequest.setPolicyDetailsReq(policyDetailsReq);
PolicyInfoViewModel.Factory factory = new PolicyInfoViewModel.Factory(
getapplication(),getPolicyInfoRequest,surrenderQuoteRequest);
pd = new ProgressDialog(PolicyInfo.this);
//setContentView(R.layout.activity_policy_info);
pref= getSharedPreferences("LoginDetail",0);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportactionBar(toolbar);
getSupportactionBar().setTitle("Poilcy Info");
apiInterface = APIClient.getclient().create(APIInterface.class);
FloatingactionButton fab = findViewById(R.id.fab);
fab.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
snackbar.make(view,"Replace with your own action",snackbar.LENGTH_LONG)
.setaction("action",null).show();
}
});
apiInterface = APIClient.getclient().create(APIInterface.class);
PolicyInfoViewModel viewModel =
ViewModelProviders.of(this,factory).get(PolicyInfoViewModel.class);
**observeViewModel**(viewModel);
pd.setTitle("Loading...");
pd.setMessage("Please wait.");
pd.setCancelable(false);
// show it
pd.show();
DrawerLayout drawer = findViewById(R.id.drawer_layout);
actionbardrawertoggle toggle = new actionbardrawertoggle(
this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigatiOnView= findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
private void **observeViewModel**(final PolicyInfoViewModel viewModel) {
// Update the list when the data changes
viewModel.getPolicyInfoResponsetObservable().observe(this,new Observer() {
@Override
public void onChanged(@Nullable GetPolicyInfoResponse getPolicyInfoResponse) {
if(getPolicyInfoResponse!=null) {
viewModel.setPolicyInfoResult(getPolicyInfoResponse);
binding.setPolicyinfo(getPolicyInfoResponse);
}
/* if (getLastaccessedDetailsResult != null) {
getLastaccessedDetailsRes=getLastaccessedDetailsResult;
viewModel.setLastaccessedDetailsResult(getLastaccessedDetailsResult);
setupViewPager(viewPager);
}*/
}
});
}

以上错误显示类强制转换异常
android.support.v7.widget.AppCompatTextView无法转换为android.support.design.widget.NavigationView

完整堆栈跟踪

2019-11-05 16:28:27.673 3019-3019 / com.exlservice.lifeprov1 E / Android运行时:致命异常:主要
    流程:com.exlservice.lifeprov1,PID:3019
    java.lang.RuntimeException:无法启动活动ComponentInfo {com.exlservice.lifeprov1 / com.exlservice.lifeprov1.view.ui.PolicyInfo}:java.lang.ClassCastException:android.support.v7.widget.AppCompatTextView无法转换为android.support.design.widget.NavigationView
        在android.app.activityThread.performLaunchactivity(activityThread.java:2817)
        在android.app.activityThread.handleLaunchactivity(activityThread.java:2892)
        在android.app.activityThread.-wrap11(未知来源:0)
        在android.app.activityThread $ H.handleMessage(activityThread.java:1593)
        在android.os.Handler.dispatchMessage(Handler.java:105)
        在android.os.Looper.loop(Looper.java:164)
        在android.app.activityThread.main(activityThread.java:6541)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
     引起原因:java.lang.ClassCastException:android.support.v7.widget.AppCompatTextView无法转换为android.support.design.widget.NavigationView
        在com.exlservice.lifeprov1.databinding.activityPolicyInfoBindingImpl。(activityPolicyInfoBindingImpl.java:30)
        在com.exlservice.lifeprov1.databinding.activityPolicyInfoBindingImpl。(activityPolicyInfoBindingImpl.java:27)
        在com.exlservice.lifeprov1.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:56)
        在android.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
        在android.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
        在android.databinding.DataBindingUtil.bindToAddedViews(DataBindingUtil.java:327)
        在android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:306)
        在android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
        在com.exlservice.lifeprov1.view.ui.PolicyInfo.onCreate(PolicyInfo.java:58)
        在android.app.activity.performCreate(activity.java:6975)
        在android.app.Instrumentation.callactivityOnCreate(Instrumentation.java:1213)
        在android.app.activityThread.performLaunchactivity(activityThread.java:2770)
        在android.app.activityThread.handleLaunchactivity(activityThread.java:2892)
        在android.app.activityThread.-wrap11(未知来源:0)
        在android.app.activityThread $ H.handleMessage(activityThread.java:1593)
        在android.os.Handler.dispatchMessage(Handler.java:105)
        在android.os.Looper.loop(Looper.java:164)
        在android.app.activityThread.main(activityThread.java:6541)
        在java.lang.reflect.Method.invoke(本机方法)
        在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)



似乎您尝试使用AppCompatTextView初始化NavigationView

NavigationView navigatiOnView= findViewById(R.id.nav_view);

在onCreate()方法内的PolicyInfo活动行58中

尝试检查您在哪里使用此ID(R.id.nav_view)并正确初始化


推荐阅读
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
author-avatar
潜伏在人间_144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有