簡體   English   中英

如何從Android中的另一個片段調用一個片段類方法

[英]How to call one Fragment Class Method from another Fragment in android

嗨,我對我的應用程序中的android非常陌生,我創建了兩個片段,分別是“ MenuFragment”和“ TextFragment”好的

但是在我的TextFragment中我有一個方法,因此我想從我的MenuFragment類中調用該方法

我想從我的MenuFragment調用的public void change(String txt,String txt1)方法

我該怎么做請幫我一些

文字片段:-

public class TextFragment extends Fragment {
    TextView text,vers;

    @Override

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

        return view;
    }

    public void change(String txt, String txt1){

        text.setText(txt);
        vers.setText(txt1);
    }
}

MenuFragment:-

public class MenuFragment extends Fragment {

    String[] AndroidOS = new String[]{"Cupcake", "Donut", "Eclair", "Froyo", "Gingerbread", "Honeycomb", "Ice Cream SandWich", "Jelly Bean", "KitKat", "Jelly Bean", "KitKat"};
    String[] Version = new String[]{"1.5", "1.6", "2.0-2.1", "2.2", "2.3", "3.0-3.2", "4.0", "4.1-4.3", "4.4", "4.1-4.3", "4.4"};

  @Override
    public void onListItemClick(ListView l, View v, int position, long id) {

    }
}

你可以試試看

對於TextFragment:-

public class TextFragment  extends Fragment{

public static TextView text,vers;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return super.onCreateView(inflater, container, savedInstanceState);
}

public static void change(String txt, String txt1){

    text.setText(txt);
    vers.setText(txt1);
}
}

對於MenuFragment:-

public class MenuFragment extends Fragment {

ListView list;
Button button1, button2;
String[] AndroidOS = new String[]{"Cupcake", "Donut", "Eclair", "Froyo", "Gingerbread", "Honeycomb", "Ice Cream SandWich", "Jelly Bean", "KitKat", "Jelly Bean", "KitKat"};
String[] Version = new String[]{"1.5", "1.6", "2.0-2.1", "2.2", "2.3", "3.0-3.2", "4.0", "4.1-4.3", "4.4", "4.1-4.3", "4.4"};


  @Override
public void onListItemClick(ListView l, View v, int position, long id) {
         TextFragment.change(AndroidOS[position],Version[position]);  
}
}

希望對您有所幫助。謝謝

像這樣在兩個片段之間保持通信不是一個好主意,因為您正在耦合這些fragments TextFragment不應該知道MenuFragment方法。

此處介紹了一個更好的解決方案: http : //developer.android.com/guide/topics/fundamentals/fragments.html

您必須為這兩個fragments創建Activity並進行call back以進行通信

因此,這與Android無關,您需要更好地理解什么是類,對象,指針等-所有通用的OOP概念。

為了獲得結果,您需要向TextFragment類的對象添加變量指針,使用前必須對其進行正確初始化。 然后只需致電:

if(varPtr!=null)
    varPtr.change(...);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM