嗨我在我的应用程序中非常新的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);
}
}
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) {
}
}
答案 0 :(得分:3)
你可以试试这个。
对于TextFragment: -
return s.length() < t.length();
对于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);
}
}
我希望这会对你有所帮助。谢谢
答案 1 :(得分:1)
将这样的两个片段之间的通信放在一起并不是一个好主意,因为你正在耦合fragments
; TextFragment
不应该知道来自MenuFragment
的方法。
这里描述了一个更好的解决方案:http://developer.android.com/guide/topics/fundamentals/fragments.html
您必须为这两个Activity
创建fragments
并制作call back
以进行通信
答案 2 :(得分:0)
这与Android无关,你需要更好地理解什么是类,对象,指针等 - 所有一般的OOP概念。
要获得结果,您需要向TextFragment类的对象添加一个变量指针,该对象必须在使用前正确初始化。然后打电话:
if(varPtr!=null)
varPtr.change(...);