对象头数据绑定

2020-08-13 19:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP团队敬上

我正在尝试将数据绑定与"对象头"组件一起使用,但是对我来说只是部分起作用。
我可以将数据绑定到标题/副标题/脚注等,但是只要我尝试绑定 数据添加到我添加到对象标题的TextViews状态中,出现以下Nullpointer异常:

 E/AndroidRuntime:致命异常:main
     流程:com.apsolut.inbox.demo,PID:8383
     java.lang.RuntimeException:无法启动活动ComponentInfo {com.apsolut.inbox.demo/com.apsolut.inbox.ui.PRItemDetailActivity}:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView。  setTag(java.lang.Object)'在空对象引用上
         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
         在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
         在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
         在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)
         在android.os.Handler.dispatchMessage(Handler.java:106)
         在android.os.Looper.loop(Looper.java:193)
         在android.app.ActivityThread.main(ActivityThread.java:6669)
         在java.lang.reflect.Method.invoke(本机方法)
         在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)
         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
      原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.TextView.setTag(java.lang.Object)'
         在com.apsolut.inbox.databinding.ItemDetailObjectHeaderBindingImpl。(ItemDetailObjectHeaderBindingImpl.java:34)
         在com.apsolut.inbox.databinding.ItemDetailObjectHeaderBindingImpl。(ItemDetailObjectHeaderBindingImpl.java:25)
         在com.apsolut.inbox.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:44)
         在androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
         在androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1250)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:717)
         在com.apsolut.inbox.databinding.ItemPrDetailBindingImpl。(ItemPrDetailBindingImpl.java:39)
         在com.apsolut.inbox.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:50)
         在androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
         在androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
         在androidx.databinding.DataBindingUtil.bindToAddedViews(DataBindingUtil.java:327)
         在androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:306)
         在androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
         在com.apsolut.inbox.ui.PRItemDetailActivity.onCreate(PRItemDetailActivity.java:28)
         在android.app.Activity.performCreate(Activity.java:7136)
         在android.app.Activity.performCreate(Activity.java:7127)
         在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
         在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
         在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
         在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)
         在android.os.Handler.dispatchMessage(Handler.java:106)
         在android.os.Looper.loop(Looper.java:193)
         在android.app.ActivityThread.main(ActivityThread.java:6669)
         在java.lang.reflect.Method.invoke(本机方法)
         在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)
         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)


 

XML对象头(这是一个包含文件,只要我不尝试将数据绑定到Textview上,它就可以正常工作):

 
     <数据>
         <变量
             name =" bodyText"
             type =" String"/>
         <变量
             name =" footnoteText"
             type =" String"/>
         <变量
             name =" headlineText"
             type =" String"/>
         <变量
             name =" subheadlineText"
             type =" String"/>
         <变量
             name =" statusText1"
             type =" String"/>
         <变量
             name =" statusText2"
             type =" String"/>
         <变量
             name =" descriptionText"
             type =" String"/>
     
     

         

         
     
  

这是组件内的错误,还是我必须通过对象头应用数据而不是直接引用TextView?

例如,以编程方式设置数据就像这样:

 objectHeader.setStatus("状态1",0);
 objectHeader.setStatus(" Status 2",1); 

希望你能帮助我。

致谢

爱德华

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


SAP团队敬上

我正在尝试将数据绑定与"对象头"组件一起使用,但是对我来说只是部分起作用。
我可以将数据绑定到标题/副标题/脚注等,但是只要我尝试绑定 数据添加到我添加到对象标题的TextViews状态中,出现以下Nullpointer异常:

 E/AndroidRuntime:致命异常:main
     流程:com.apsolut.inbox.demo,PID:8383
     java.lang.RuntimeException:无法启动活动ComponentInfo {com.apsolut.inbox.demo/com.apsolut.inbox.ui.PRItemDetailActivity}:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView。  setTag(java.lang.Object)'在空对象引用上
         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
         在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
         在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
         在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)
         在android.os.Handler.dispatchMessage(Handler.java:106)
         在android.os.Looper.loop(Looper.java:193)
         在android.app.ActivityThread.main(ActivityThread.java:6669)
         在java.lang.reflect.Method.invoke(本机方法)
         在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)
         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
      原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.TextView.setTag(java.lang.Object)'
         在com.apsolut.inbox.databinding.ItemDetailObjectHeaderBindingImpl。(ItemDetailObjectHeaderBindingImpl.java:34)
         在com.apsolut.inbox.databinding.ItemDetailObjectHeaderBindingImpl。(ItemDetailObjectHeaderBindingImpl.java:25)
         在com.apsolut.inbox.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:44)
         在androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
         在androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1250)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:1266)
         在androidx.databinding.ViewDataBinding.mapBindings(ViewDataBinding.java:717)
         在com.apsolut.inbox.databinding.ItemPrDetailBindingImpl。(ItemPrDetailBindingImpl.java:39)
         在com.apsolut.inbox.DataBinderMapperImpl.getDataBinder(DataBinderMapperImpl.java:50)
         在androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
         在androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
         在androidx.databinding.DataBindingUtil.bindToAddedViews(DataBindingUtil.java:327)
         在androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:306)
         在androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
         在com.apsolut.inbox.ui.PRItemDetailActivity.onCreate(PRItemDetailActivity.java:28)
         在android.app.Activity.performCreate(Activity.java:7136)
         在android.app.Activity.performCreate(Activity.java:7127)
         在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
         在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
         在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
         在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)
         在android.os.Handler.dispatchMessage(Handler.java:106)
         在android.os.Looper.loop(Looper.java:193)
         在android.app.ActivityThread.main(ActivityThread.java:6669)
         在java.lang.reflect.Method.invoke(本机方法)
         在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)
         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)


 

XML对象头(这是一个包含文件,只要我不尝试将数据绑定到Textview上,它就可以正常工作):

 
     <数据>
         <变量
             name =" bodyText"
             type =" String"/>
         <变量
             name =" footnoteText"
             type =" String"/>
         <变量
             name =" headlineText"
             type =" String"/>
         <变量
             name =" subheadlineText"
             type =" String"/>
         <变量
             name =" statusText1"
             type =" String"/>
         <变量
             name =" statusText2"
             type =" String"/>
         <变量
             name =" descriptionText"
             type =" String"/>
     
     

         

         
     
  

这是组件内的错误,还是我必须通过对象头应用数据而不是直接引用TextView?

例如,以编程方式设置数据就像这样:

 objectHeader.setStatus("状态1",0);
 objectHeader.setStatus(" Status 2",1); 

希望你能帮助我。

致谢

爱德华

付费偷看设置
发送
2条回答
蓋茨
1楼-- · 2020-08-13 20:16

爱德华,

XML看起来不错。 错误消息抱怨setTag,我在ObjectHeader或AbstractEntityCell中找不到。 您可以仔细检查`setTag`调用的来源吗?

谢谢

曹操

hengyuye
2楼-- · 2020-08-13 20:28

嗨,

感谢您的解释

关于,
爱德华

一周热门 更多>