Я прочитал много ссылок, но все передают данные из одного фрагмента в другое действие или из одного действия в фрагмент другого действия, но я хочу отправить из фрагмента одной активности с другим фрагментом другой деятельностикак отправить некоторые данные из фрагмента одного действия в другой фрагмент другой активности
ответ
Если я что-то не упустил, вы можете вызвать getActivity().startActivity()
из первого фрагмента, с некоторыми дополнениями, установленными на этом намерении, а затем из этого второго действия передать некоторые аргументы во Фрагмент создает.
Так, из Fragmenta
Intent i = new Intent(getActivity(), ActivityB.class);
i.setExtra("key", "hello world"); // for example
getActivity().startActivity(i);
Затем, ActivityB
onCreate() {
Intent i = getIntent();
FragmentB frag = new FragmentB();
if (i!=null) frag.setArguments(i); // pass along intent
// TODO load Fragment
И использовать в FragmentB
yes Было бы полезно, если бы вы могли делиться – Ayaz
Хорошо, я нахожусь на мобильном телефоне, t проверить это, но это должно быть похоже на код, который вы видели в приведенных вами примерах. –
Если вы должны пройти ДАННЫЕ по всему приложению или, возможно, между Дальней деятельностью/фрагмент, как в вашем примере, рассмотрим использование некоторых статических классов (даже если в java нет статических классов, это скорее статическая оболочка поля).
public class MyRunTimeDatas{
private static String myStringData;
private static int myIntData;
//getters and setters
}
Теперь в fragment 1
использования
MyRunTimeDatas.setMyStringData("my value");
MyRunTimeDatas.setMyIntData(69);
Наконец в fragment 2
теперь вы можете позвонить
String myBeautifulString = MyRunTimeDatas.getMyStringData();
int myFantasticInt = MyRunTimeDatas.getMyIntData();
и вы сделали
Насколько я знаю, метод, которым вы делитесь, заключается в передаче данных из одного фрагмента в другой фрагмент в одном и том же действии ... но в моем случае это фрагмент различной активности @ Pier Giorgio Misley – Ayaz
@Ayaz - это объект доступа к данным. Поскольку переменные являются статическими, они размещаются в памяти приложения и могут быть доступны в любом классе. –
@Ayaz это как cricket_007 сказал: это отдельный класс (отдельный .java-файл), так что это означает, что вы можете получить к нему доступ из любого класса вашего приложения –
Хорошо ... Если вы может пройти от Fra для действия и действия для фрагмента, то вы можете перейти от фрагмента к другому фрагменту через Activity, правильно? –
Да, я могу сделать это, но это единственный способ. Я имею в виду, что нет другого прямого пути. [email protected]_007 – Ayaz
Вы можете попробовать изучить библиотеку EventBus. Лично я этого не пробовал, но многие рекомендуют его –