在Android中将数据从基本活动发送到片段[重复]
Posted
技术标签:
【中文标题】在Android中将数据从基本活动发送到片段[重复]【英文标题】:Sending data from Base Activity to Fragment in Android [duplicate] 【发布时间】:2017-02-06 07:24:11 【问题描述】:我有一个关于片段的问题。 场景是:登录后,我正在进行一个有 3 个片段的活动。对于片段,我使用了 ViewPager。现在我必须在我的片段之一中使用登录用户名。我已经使用 putExtra 从登录页面购买了用户名。我的问题是如何将该用户名带到片段中??
【问题讨论】:
将它们打包并传递给您的片段。我建议您为此使用共享首选项。 你为什么不为此使用共享偏好? 你是对的。也可以这样做,但我做了捆绑的事情,但在片段中得到了空指针异常。任何想法! 不知道如何使用共享偏好。 分享代码sn-p会有帮助 【参考方案1】:从您的 BaseActivity 使用 intent
发送数据:
Bundle bundle = new Bundle();
bundle.putString("username", "From your BaseActivity");
// set Fragmentclass Arguments
Fragmentclass fragmentclass = new Fragmentclass();
fragmentclass .setArguments(bundle);
在你的 Fragment
onCreatView
方法中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
String username= getArguments().getString("username");
return inflater.inflate(R.layout.yourFragment, container, false);
【讨论】:
它在我们将值存储在字符串中的行的片段中显示空指针异常。 @ArmanReyaz 您应该在将片段添加到您的活动之前设置捆绑包【参考方案2】:您也可以使用 SharedPreferences。 将用户名或您想要保存的任何内容存储在 SharedPreferences 中,并在应用程序的任何位置使用它。 供您参考SharedPreferences Tutorials
【讨论】:
【参考方案3】:从您的活动中,您可以发送有意图的数据:
Bundle bundle = new Bundle();
bundle.putString("username", "abcd");
// set Fragmentclass Arguments
FragmentClass frag_one = new Fragmentclass();
frag_one.setArguments(bundle);
并在 Fragment onCreateView 方法中添加以下代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
String strtext = getArguments().getString("username");
return inflater.inflate(R.layout.fragment_layout, container, false);
【讨论】:
它在我们将值存储在字符串中的行的片段中显示空指针异常。 @ArmanReyaz 你可以试试 String strtext = this.getArguments().getString("username");以上是关于在Android中将数据从基本活动发送到片段[重复]的主要内容,如果未能解决你的问题,请参考以下文章