我有一个片段类:
public class UploadFragmentOne extends Fragment {}
我已经分类:
public interface Communicator {
void communicate(int position);
}
在onCreateView中:
((Communicator) getActivity()).communicate(1);
托管活动签名:
public class DetailsPager extends FragmentActivity implements UploadFragmentOne.Communicator {}
上述活动中的会员功能:
public void communicate(int position) {
Toast.makeText(DetailsPager.this, "Clicked " + position, Toast.LENGTH_LONG).show();
}
这就像一个魅力,但我不明白如何?对不起,这可能太愚蠢了,但我想知道控制是如何流入的?
答案 0 :(得分:1)
您应该查看以下link一次.- 现在来查询
(MyActivity)activity.some_method()
现在假设您要为另一个活动添加相同的片段,如MainActivity
,那么您需要这样做 -
(MainActivity)activity.some_method()
现在假设其他一些活动正在实现相同的片段,然后每次需要使用instanceOf
检查然后调用该方法并添加它。
再次假设一个简单的案例,当你要创建一个库,然后你将为特定事件提供一些结果传递呢? 你将如何获得实例类型?
接口顾名思义提供了一种在没有实际类实例的情况下进行通信的方法。他们只需要实施。您可以查看OnClickListener
类API API源代码中的View
。