我试图在我的项目中实现这段代码,但不起作用RecycerView:如何捕捉ImageView上的onClick?:
我实现了一个接口来处理RecycerView中的onclick imageview和onclick row。问题是,当我试图在imageview上或在行中单击时,不会发生任何事情。如果我在我的ViewHolder类中尝试同样的方法,效果会很好,因为我可以看到祝酒词。问题是我需要这个工作从我的片段。
我认为问题可能是当我将监听器传递给Viewholder的构造函数时,或者当我从片段传递监听器时。
一些帮助将会是偶然的:
我的适配器类:
private static List<DatabaseModel> dbList;
private static Context context;
private RecyclerViewClickListener listener;
public class MainTimelineRecyclerAdapter extends RecyclerView.Adapter<MainTimelineRecyclerAdapter.AnViewHolder> {
public MainTimelineRecyclerAdapter(Context context, List<DatabaseModel> dbList, RecyclerViewClickListener listener ){
this.dbList = new ArrayList<DatabaseModel>();
this.context = context;
this.dbList = dbList;
this.listener = listener;
}
public static class AnViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public ImageView contact;
public AnViewHolder(final View itemLayoutView, final RecyclerViewClickListener listener) {
super(itemLayoutView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null)
listener.onRowClicked(getAdapterPosition());
}
});
contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null)
listener.onViewClicked(v, getAdapterPosition());
}
});
}
}
public interface RecyclerViewClickListener {
void onRowClicked(int position);
void onViewClicked(View v, int position);
}
}
我的片段:
public class MainTimeline extends Fragment implements RecyclerViewClickListener {
private RecyclerViewClickListener listener;
.
.
.
mAdapter = new MainTimelineRecyclerAdapter(getActivity(), dbList, listener);
@Override
public void onViewClicked(View view, int position) {
Toast.makeText(getActivity(), "photo", Toast.LENGTH_SHORT).show();
}
@Override
public void onRowClicked(int position) {
Toast.makeText(getActivity(), "view", Toast.LENGTH_SHORT).show();
}
}
如果希望片段侦听适配器中发生的操作,则需要将其注册为适配器中发生的事件的侦听器(通过实现接口并将片段作为侦听器传递):
public class MainTimeline extends Fragment implements RecyclerViewClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// you don't need a private RecyclerViewClickListener listener; reference as you have the fragment itself
mAdapter = new MainTimelineRecyclerAdapter(getActivity(), dbList, this);
}
// implement the methods from the interface
}
下面的函数在服务中被调用。当条件得到满足时,意图就是要求做某事。我使用了
我的GridbagLayout有些问题。我创建了一个JPanel(在本例中称为mainPanel),它的布局被设置为GridBagLayout。我已经为每个JButton指定了约束,并将约束添加到每个Button。现在,当我运行代码时,按钮总是紧挨着的,而不考虑我在约束中指示的Gridx/Gridy值。此外,按钮总是位于JFrame的中心,我希望一个按钮出现在右上角、左上角和南边。 这是我运行代码
在我活动页面之一的片段中,我希望从用户处获得权限,并在授予权限后执行一些操作,但不起作用,且在授予权限后看不到任何日志
嗨,我在主片段内使用带有碎片网的viewPager。我试图从画廊或相机中获取图像到位图,但在选择照片并启动ActivityForResult后,它不会在onActivityResult中捕获... 以下是我如何调用startActivityForResult: 这是我的onActivityResult: 有什么想法吗?
我有一个ViewModel处理我的业务逻辑,我正在使用Koin将它注入到我的活动和每个片段中。然而,在我从片段A-片段B导航并导航回片段A之后,我的观察者再次被触发。为什么会发生这种情况?当我返回时,如何阻止这种onChanged被触发? 我尝试将'this'和'view LifecycleOwner'设置为LiveData的LifecycleOwner。 我还尝试将observable移动到on
我使用带有ViewPager的FragmentPagerAdapter来切换片段 那么我如何使片段调用它们的onResume()呢?