как передать данные из деятельности во фрагмент в android без буфера? - PullRequest
0 голосов
/ 11 января 2020

Это класс активности моего проекта

    @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);
}

}

Это моя активность фрагмента детали. и это фрагмент вкладки ...

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();

} Этот код не работает .app cra sh без каких-либо ошибок .... пожалуйста, помогите. спасибо

Ответы [ 2 ]

0 голосов
/ 11 января 2020

в tab_activity:

 public String LicID = "DATA"

Если вы хотите получить доступ к этой переменной из фрагмента, прикрепленного к действию,

в фрагменте сведений:

((tab_activity) (getActivity)).LicID

, чтобы вы не нужно передавать аргументы фрагменту и использовать для этого связку. Если вам нужна дополнительная помощь, пожалуйста, покажите свой logcat

0 голосов
/ 11 января 2020

Мне кажется, проблема в том, что вы устанавливаете аргумент для одного фрагмента:

Fragment FragmentDetail = new FragmentDetail();
Bundle data  = new Bundle();
data.putString("data",LicID);

FragmentDetail.setArguments(data);

и добавляете в адаптер другой фрагмент:

adapter.AddFragment(new FragmentDetail(),"Detail");

Пожалуйста, попробуйте использовать тот же фрагмент.

...