Androidda ta'sir o'tkazmasdan fragmentdan fragmentgacha ma'lumotlarni uzatish mumkinmi?

Hozirgi vaqtda Fragmanlar ustida ishlayapman, shuning uchun xohlagan ma'lumotlarga qaramasdan Fragmandan fragmentgacha ma'lumot uzatish mumkinligini bilmoqchiman.

4
qo'shib qo'ydi muallif Yatin, manba
Sizga tegmasdan nima deysiz? Iltimos, buni aniq tushuntirib bering
qo'shib qo'ydi muallif quick learner, manba
qo'shib qo'ydi muallif Saurabh Bhandari, manba

6 javoblar

Bunga erishishning bir qator yo'llari mavjud

1: Bundledan foydalanish

Ulanish 1 - ma'lumot paketi va boshqa usullar yordamida ma'lumotlarni qanday uzatishni tushuntiradi

2 : Using Activities & Fragment

Link 2 - With help of activites ,interface and fragments

3: Umumiy imtiyozlarni ishlatish

Shared Preferences havolalari

0
qo'shib qo'ydi

String yuborish uchun Bundle'dan foydalaning:

//Put the value
YourNewFragment ldf = new YourNewFragment ();
Bundle args = new Bundle();
args.putString("YourKey", "YourValue");
ldf.setArguments(args);
//Inflate the fragment
getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();

Yangi Fragmanning onCreateView ko'rinishida:

//Retrieve the value
String value = getArguments().getString("YourKey");
0
qo'shib qo'ydi

Buni amalga oshirishning ko'plab usullari mavjud. Ularning biri quyidagicha argumentlarni yuborish orqali:

private int data;
private static String PARAM_MY = "param";

public static MyFragment newInstance(int data) {
    MyFragment fragment = new MyFragment ();
    Bundle args = new Bundle();
    args.putInt(PARAM_MY , data);
    fragment.setArguments(args);
    return fragment;
}

va uni ():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (getArguments() != null) {
        data = getArguments().getInt(PARAM_MY);
    }
}

Boshqa usul: Interfeys dan foydalanish.

0
qo'shib qo'ydi

Men shunday deb o'ylamayman. Har bir bo'lak bir faoliyatga biriktirilgan, ikkita parcha o'rtasida to'g'ridan-to'g'ri aloqa yo'q, agar ular bir xil faoliyat bilan bog'lanmagan bo'lsa. Agar siz fragmentlar bilan bog'lanishni istasangiz, interfeyslarni belgilashingiz kerak bo'ladigan qismni o'z ichiga oladi va biriktirilgan amalni interfeyslarni amalga oshiradi. Qo'shilgan faoliyatda siz ikkita parcha halqangiz bor, shuning uchun siz fragmentlar orasidagi ma'lumotlaringizni (faoliyatdan foydalanib) o'tishingiz mumkin. Eng yaxshi ilovalar tomonidan qat'iy tavsiya qilinadi, batafsil ma'lumot uchun hujjatlarni ko'rib chiqing:

https://developer.android.com/training/basics/fragments/communicating.html

0
qo'shib qo'ydi

Asosiy savol siz nimaga erishmoqchi ekanligingizni va qanday ma'lumotni o'tkazishga harakat qilyapsiz?

Ish uchun yozgan ilovalarimdan biri asosiy faoliyatdan foydalanib, barcha boshqaruvchilarni osongina har qanday ko'rinishda yoki ramka yoki tegishli nazoratchi orqali olish mumkin edi. Yaxshi namuna barcha birgalikda ishlaydigan ma'lumotlarga ega bo'lgan ma'lumotlarni boshqarish vositasi bo'ladi.

Siz strings va ints yoki murakkab ob'ektlardan o'tishni qidirasizmi?

0
qo'shib qo'ydi

Faoliyat bir xil bo'lsa, siz faoliyatdagi ma'lumotlarni saqlashingiz mumkin.

Activity

public class MyActivity extends Activity {

    private MyObject myObject = new MyObject();

    @Override 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        ... 
    } 

    public MyObject getMyObject() {
        return myObject;
    } 
} 

Fragment

public class MyFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        MyActivity activity = (MyActivity) getActivity();
        MyObject myObjectFromActivity = activity.getMyObject();
        return view; 
    } 
} 
0
qo'shib qo'ydi