膨胀视图的按钮onClickListener在RecyclerView适配器内没有响应

时间:2016-11-12 01:34:00

标签: android android-layout android-recyclerview recycler-adapter

我一直试图让按钮onClickListener从充气布局中恢复工作。我试过这个但没有任何反应:

LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.my_profile_fragment, null);
Button svBtn = (Button) view.findViewById(R.id.saveBtn);

svBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        System.out.println("CLICKED");
    }
});

RecyclerView适配器内部,我在onCreateViewHolder中展示了具有卡片布局的原始布局,并且我能够与它进行交互:

@Override
public ItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.single_card, null);

    return new ItemRowHolder(v);
}

但我想从不同的布局(片段布局)与按钮进行交互。这是可能的,如果是这样我怎么能实现呢?

2 个答案:

答案 0 :(得分:0)

尝试view.getParent()获取您片段的父视图。

答案 1 :(得分:0)

不幸的是,你这样做的方式无法发挥作用。

转到onBindViewHolder(ViewHolder viewholder, int position)方法,并使用viewholder的字段直接在那里设置点击监听器。

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int position) {
    viewHolder.svBtn.setOnClickListener(this);
}