我有一个活动,有一些相同类型的片段。我有一份清单。只要我点击一个列表项,我就需要调用一个activity方法,传递点击发生的片段。
我认为这是一个相当愚蠢的问题,但我搞不懂。
public class MapFragment extends Fragment {
Activity activity;
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = activity;
}
public MapFragment() {
/* here I could refer to the fragment using "this" */
}
private class MyListOnItemClick implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
/* how can I refer to the fragment here? */
Fragment f = getFragmentSomeWay();
(CustomActivity)activity.doSomethingWith(f);
}
}
}
您的片段可以实现AdapterView。OnItemClickListener。
public class MapFragment extends Fragment implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
requireActivity().doSomethingWith(f);
}
有些人会在这里使用匿名类。
adapter.setOnItemClickListener(AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> adapterView, final View view, final int i, final long l) {
requireActivity().doStuff();
}
};
只需参考封闭类这个
:
Fragment f = MapFragment.this;
数据层次结构是: < li >地点 < ul > < li>id < li >名称 < li >图像 < ul > < li >原稿_图像 < ul > < li>id < li >图像url < li >宽度 < li >高度 编号 image_url 宽度 高度 原始图像等于缩略图图像。 我的地方类是 我的图像课是 我的图像类是 当我编译这个项目时,房间库返回错误 错误:在com.test.r
问题内容: 在Java中,匿名内部类可以在其局部范围内引用变量: 我的问题是这实际上如何实施?如何实现匿名内部实现,为什么必须如此? 问题答案: 编译器会自动为您的匿名内部类生成一个构造函数,并将您的局部变量传递给该构造函数。 构造函数将此值保存在也称为的类变量(字段)中,该变量将在“闭包”中使用。 为什么它必须是最终的?好吧,让我们探讨一下它不在的情况: 在情况A中,还需要更改字段,我们假设这是
问题内容: 我正在使用Apache Commons EqualsBuilder来为非静态Java内部类构建equals方法。例如: 除了声明方法之外,是否有可以参考的引用的语法?有点像(不起作用)? 问题答案: 没有。 最好的方法可能是您所建议的:将getFoo()方法添加到内部类中。
问题内容: 我正在扩展ArrayList来创建一个自定义ArrayList,可以在迭代它的同时使用常规ArrayList方法进行修改。为此,我还要创建一个迭代器。 在我的hasNext()和next()方法期间,我需要确保列表没有被修改(可以在任何其他时间修改)。因此,我需要在我的shared()块中引用我的封闭类型。 问题答案: 。因此,在您的情况下,它将为。
在以下片段中: 有没有办法从内部匿名类引用匿名类的外部实例? 第二个错误是在解决方案上,我在这里找到了一个匿名内部类的外部类的关键字。这些问题似乎共享一些概念和问题空间,但性质不同。
我知道如果我想扩展内部类,我应该这样做: 但是在这种情况下,我不明白该怎么办?如何获取内部对象的封闭实例? 此变体不编译: