我已经创建了一个片段,在这个片段中找不到接口类的用途.我搜索它,但是找不到正确的文档?
谢谢您的关心!
public class SongListFragment extends Fragment {
public SongListFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
songIds = getArguments().getIntArray(SONG_IDS);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
//what's the use?
public interface OnFragmentInteractionListener {
public void onSongSelected(int songId);
}
}发布于 2017-02-13 18:49:32
发布于 2017-02-13 18:37:40
接口是Java中的引用类型。它和课堂很相似。它是抽象方法的集合。类实现接口,从而继承接口的抽象方法。
除了抽象方法之外,接口还可能包含常量、默认方法、静态方法和嵌套类型。方法体只存在于默认方法和静态方法中。
编写接口类似于编写类。但是类描述对象的属性和行为。接口包含类实现的行为。
除非实现接口的类是抽象的,否则接口的所有方法都需要在类中定义。
您可能对这里有一个简短的想法,您可以随意询问是否会出现任何混淆!:)
因此,在特定情况下,您的活动必须实现interface OnFragmentInteractionListener,否则附加在Activity中的片段无法相互通信。你的活动应该像
public class YourActivity extends Activity implements OnFragmentInteractionListener然后在您的Activity中实现onSongSelected(int songId)方法,您可以从这里。希望获得帮助,这很有帮助!
发布于 2017-02-13 18:41:58
@Tahmid解释了那里的界面是什么,答案是什么。
在这种特殊情况下,接口应该在您的片段附加到的活动中实现。这将允许片段对活动调用onSongSelected()。然后,该活动可以相应地处理用户请求的操作。
如果没有接口,就不会有一种定义良好的方法让片段告诉它的父活动用户单击了一首歌。
https://stackoverflow.com/questions/42211034
复制相似问题