简体   繁体   English

如何在没有budle的情况下将数据从活动传递到android中的片段?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM