如何在android中从另一个片段调用一个片段类方法

如何在android中从另一个片段调用一个片段类方法,android,android-fragments,Android,Android Fragments,嗨,我是android的新手,在我的应用程序中,我创建了两个片段,它们是“MenuFragment”和“TextFragment”,好的 但是在我的TextFragment中,我有一个方法,所以我想从我的MenuFragment类调用该方法 我想从MenuFragment调用的public void change(String txt,String txt1)方法 我该怎么做请帮我一些 文本片段:- 菜单碎片:- 这与Android本身无关,您需要更好地理解什么是类、对象、指针等等——所有这些都

嗨,我是android的新手,在我的应用程序中,我创建了两个片段,它们是“MenuFragment”和“TextFragment”,好的

但是在我的TextFragment中,我有一个方法,所以我想从我的MenuFragment类调用该方法

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

我该怎么做请帮我一些

文本片段:- 菜单碎片:-
这与Android本身无关,您需要更好地理解什么是类、对象、指针等等——所有这些都是一般的OOP概念

为了获得结果,您需要添加一个变量指针,指向TextFragment类的对象,该类对象在使用前必须正确初始化。然后打电话:

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

这与Android本身无关,您需要更好地理解什么是类、对象、指针等等——所有这些都是一般的OOP概念

为了获得结果,您需要添加一个变量指针,指向TextFragment类的对象,该类对象在使用前必须正确初始化。然后打电话:

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

这样在两个片段之间保持通信不是一个好主意,因为您正在耦合
片段
TextFragment
不应该知道
MenuFragment
中的方法

下面介绍了更好的解决方案:


您必须为这两个
片段创建
活动
,并进行
回调
以进行通信

这样在两个片段之间保持通信不是一个好主意,因为您正在耦合
片段
TextFragment
不应该知道
MenuFragment
中的方法

下面介绍了更好的解决方案:

您必须为这两个
片段创建
活动
,并进行
回拨
进行通信

您可以尝试此操作

对于文本片段:-

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]);  
}
}
我希望这对你有帮助。谢谢你可以试试这个

对于文本片段:-

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

我希望这会对你有所帮助。谢谢你可以使用静态方法。在这里你可以从这里找到你的答案。请通过代码告诉我我非常渴望androidkishan我不明白你能更新我的代码吗,我对Android非常陌生你可以使用静态方法。看这里你可以从这里找到你的答案请通过代码告诉我我对androidkishan非常乞讨我不明白你可以更新我的代码吗请,我对Android非常陌生所以我们不能从Menufragment中调用Textfragment方法吗?做这样的事情与Android无关。。。正如我上面所说的,TextFragment不应该知道MenuFragment中的方法,它只是一种模式,你想用一种错误的方式来做这件事,所以我们必须为Textfragment和Menufragment创建两个活动,并使它们正确地进行通信?我对android非常陌生,这就是为什么我才挣扎了两天回到这项技术我想你必须开始阅读关于片段和活动的小文档,以及他们如何相互沟通。。在这里,你可以开始另一个指南,所以我们不能从Menufragment中调用Textfragment方法吗?做这样的事情与Android无关。。。正如我上面所说的,TextFragment不应该知道MenuFragment中的方法,它只是一种模式,你想用一种错误的方式来做这件事,所以我们必须为Textfragment和Menufragment创建两个活动,并使它们正确地进行通信?我对android非常陌生,这就是为什么我才挣扎了两天回到这项技术我想你必须开始阅读关于片段和活动的小文档,以及他们如何相互沟通。。在这里,你可以开始另一个指南