我阅读了有关创建接口的官方Android文档,以便能够在父活动和片段之间进行通信。所以当我调用其中一种方法从父活动中获取值时,我的应用程序崩溃了。
如果我的片段中有这样的界面
public interface InteractWithFragmentA {
String getStringText();
}
在我的通话活动中,我用虚拟文本
测试了它@Override
public String getStringText(){ return "Some dummy text";}
我在FragmentA.java中有一个变量,它是对主机活动的引用并转换为InteractWithFragmentA,但当我使用
调用该方法时 _hostActivity.getStringText()
答案 0 :(得分:1)
哟应该这样做:
活动
public class YourActivity implements YourActivityInterface{
@Override public String getStringText(){ return "Some dummy text";}
}
接口
public interface YourActivityInterface {
String getStringText();
}
片段
public class YourFragment extends Fragment {
YourActivityInterface mListener;
//your method...
mListener.getStringText()
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof YourActivityInterface) {
mListener = (YourActivityInterface) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement YourActivityInterface");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
}
答案 1 :(得分:1)
从片段
尝试此操作((YourActivity) getActivity()).getStringText();