从 2 个不同片段的 sqlite 中的 2 个表中获取信息
Posted
技术标签:
【中文标题】从 2 个不同片段的 sqlite 中的 2 个表中获取信息【英文标题】:get information from 2 table in sqlite from 2 different fragment 【发布时间】:2021-10-09 06:32:35 【问题描述】:我有 2 个表:book 和 user,现在我需要创建另一个表,但它应该从 book 中获取一些字段,而从 user 中获取一些字段,我可以分开,但是当我去另一个片段从 book 表中获取其他字段时用户名,我将它保存到一个字符串,返回 null
08-04 10:47:27.319 4004-4004/com.example.pars.amanatdari I/bookName: args : Bundle[status=null, userName=jack, bookName=null]
08-04 10:47:30.139 4004-4004/com.example.pars.amanatdari I/bookName: args : Bundle[status=available, userName=null, bookName=نون والقلم]
我到底应该怎么做?我什至不知道要搜索什么
从片段发送数据:
Bundle args = getArguments();
String username = args.getString("userName");
并获取数据:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String bookName = bundle.getString("bookName");
String bookStatus = bundle.getString("status");
String bookUser = bundle.getString("userName");
borrowFragment borrowFragment = new borrowFragment();
Bundle args2 = new Bundle();
args2.putString("bookName", bookName);
args2.putString("status", bookStatus);
args2.putString("userName", bookUser);
Log.i("bookName", "args : " + args2);
borrowFragment.setArguments(args2);
getSupportFragmentManager().beginTransaction().add(R.id.frg_container, borrowFragment, "tag").commit();
【问题讨论】:
所以基本上你从书籍片段中获取一些值,然后导航到用户片段,然后导航到第三个片段,你从书籍片段中获取的值是空的吗?首先,我建议您迁移到导航组件并使用安全参数将值从一个片段传输到另一个片段。在这种情况下,就目前而言,您可以简单地在三个类之间使用一个数据类和一个共享的 viewModel。在确认上述问题的同时回复我已要求获得更有效的答案 是的,你几乎是对的,但首先我从用户表中获取一些值,然后我去另一个片段选择一本书,当我返回时用户名变为空 问题解决了吗? 是的,你救了我 :) 【参考方案1】:这一定会发生,因为在您访问书籍片段后捆绑包会变为空或被覆盖。所以可以做的是您可以从用户片段中获取值并将值传递给书籍片段,然后同时获取值并转到下一个片段。你必须随身携带数据
【讨论】:
以上是关于从 2 个不同片段的 sqlite 中的 2 个表中获取信息的主要内容,如果未能解决你的问题,请参考以下文章