[英]how to pass data from activity to fragment in android without budle?
This is the activity class of my project这是我项目的活动类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabs_activity);
String LicID = "DATA"
Fragment FragmentDetail = new FragmentDetail();
Bundle data = new Bundle();
data.putString("data",LicID);
FragmentDetail.setArguments(data);
ViewPageAdapter adapter = new ViewPageAdapter(getSupportFragmentManager());
adapter.AddFragment(new FragmentDetail(),"Detail");
viewp.setAdapter(adapter);
tablay.setupWithViewPager(viewp);
}
} }
This is my fragmentDetail activity.这是我的 fragmentDetail 活动。 and it is a tab fragment...它是一个标签片段......
public class FragmentDetail extends Fragment {
public FragmentDetail() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.detail_fragment,container,false);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
String LicID = getArguments().getString ("data");
Toast.makeText(getContext(),""+LicID+" ",Toast.LENGTH_SHORT).show();
} This code is not work.app crash without any error.... please help.此代码不起作用。应用程序崩溃没有任何错误.... 请帮忙。 thank you谢谢你
I think the problem is that you set argument to one fragment:我认为问题在于您将参数设置为一个片段:
Fragment FragmentDetail = new FragmentDetail();
Bundle data = new Bundle();
data.putString("data",LicID);
FragmentDetail.setArguments(data);
And add to adapter another fragment:并向适配器添加另一个片段:
adapter.AddFragment(new FragmentDetail(),"Detail");
Please, try to use the same fragment.请尝试使用相同的片段。
in tab_activity:在 tab_activity 中:
public String LicID = "DATA"
When you want to access this variable from the fragment attached to activity,当您想从附加到活动的片段中访问此变量时,
in Detail Fragment :详细片段:
((tab_activity) (getActivity)).LicID
so you don't have to pass arguments to the fragment and use bundle for this.所以你不必将参数传递给片段并为此使用包。 If you need further assistance, please show your logcat如果您需要进一步的帮助,请出示您的 logcat
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.