Я хочу установить текст во фрагменте, но теперь я могу установить текст в следующем фрагменте - PullRequest
0 голосов
/ 31 марта 2020

Я хочу, чтобы приложение прослушивало событие клика и выполняло метод editText.setText. но я не могу получить доступ к текущей странице, которая отображается на дисплее. Метод setText - это работа над следующим фрагментом. я перепробовал много вещей, но результат тот же ... коды о моем фрагменте. (фрагмент на viewpager)


    public class myFragment extends Fragment{
      EditText editText;
        webTomainadapter wtma=new webTomainadapter();
        viewPagerAdapter ad=new viewPagerAdapter(getFragmentManager());
        String s;



        public myFragment() {
            // Required empty public constructor
        }


        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (getArguments() != null) {
                wtma.setOnItemListener(new webTomainadapter.OnItemClickListener() {
                    @Override
                    public void onItemClick(String v, int position) {
                        editText.setText(editText.getText().append(v));

                    }
                });
            }
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            final View root=inflater.inflate(R.layout.fragment_my, container, false);
             editText=root.findViewById(R.id.editText);
            editText.setHint("HINT");
           listener();

            return root;
        }


        public void listener(){
            wtma.setOnItemListener(new webTomainadapter.OnItemClickListener() {
                @Override
                public void onItemClick(String v, int position) {
                    Log.i("info","listener");
                    Fragment current=getActivity().getSupportFragmentManager().findFragmentById(R.id.viewPage);
                    if(current instanceof myFragment){
                       FragmentTransaction fragmentTransaction=
                               (getActivity()).getSupportFragmentManager().beginTransaction();
                       fragmentTransaction.detach(current);

                       fragmentTransaction.attach(current);
                        editText.setText(editText.getText().append(v));
                       fragmentTransaction.commit();
                    }




                }
            });
        }
    }

1 Ответ

0 голосов
/ 31 марта 2020

Use Bundle

Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putString(key, value);
fragment.setArguments(bundle);

Извлечение данных в методе onCreate (), в следующем фрагменте

Bundle bundle = this.getArguments();
if (bundle != null) {
    String str = bundle.getInt(key, defaultValue);
}
...