【问题标题】:How to get item 's view of RecyclerView如何获取 RecyclerView 的 item 视图
【发布时间】:2015-11-17 13:53:44
【问题描述】:

如何在 Telerik 的 RadListViewRecyclerView 中获取 item 的视图; 例如:我想获得TextViewImageView 包含的RadListViewRecyclerView.

以前,我可以通过getView() in ListView 得到它,但现在我不能;

我找了很多文件,但没有想法。

以下是我的adapter 代码。

public class ReminderAdapter extends ListViewAdapter {

private List<Map<String, Object>> dataList;
private Context mContext;

public ReminderAdapter(List items, Context context) {
    super(items);
    this.dataList = items;
    mContext = context;
}

@Override
public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(mContext).
            inflate(R.layout.remind_custom_radlistview_item, parent, false);
    return new ReminderViewHolder(view);

}

@Override
public void onBindViewHolder(ListViewHolder holder, int position) {
    super.onBindViewHolder(holder, position);
    ReminderViewHolder reminderViewHolder = (ReminderViewHolder) holder;
    reminderViewHolder.timeTextView.setText((String) dataList.get(position).get("time"));
    reminderViewHolder.remainTextView.setText((String) dataList.get(position).get("remain"));
    reminderViewHolder.selectImageView.setImageResource((Integer) dataList.get(position).get("pic"));
    if (position == dataList.size() - 1) {
        reminderViewHolder.mView.setVisibility(View.GONE);
    }

}


class ReminderViewHolder extends ListViewHolder {

    TextView timeTextView;

    TextView remainTextView;

    ImageView selectImageView;

    View mView;
    MaterialRippleLayout materialRippleLayout;

    public ReminderViewHolder(View itemView) {
        super(itemView);
        timeTextView = (TextView) itemView.findViewById(R.id.custom_remind_list_timeTextView);
        remainTextView = (TextView) itemView.findViewById(R.id.custom_remind_list_remainTextView);
        selectImageView = (ImageView) itemView.findViewById(R.id.custom_remind_list_selectImage);
        mView = (View) itemView.findViewById(R.id.custom_remind_list_horizontal_line);
        materialRippleLayout = (MaterialRippleLayout) itemView.findViewById(R.id.acustom_remind_list_ripple_layout);
    }
}
}

【问题讨论】:

    标签: android telerik adapter android-recyclerview radlistview


    【解决方案1】:

    我有个主意:

    创建一个界面:

    public interface RadListViewClickListener {
       public void RadListViewClick(View v,int positon);
    }
    

    在你的活动或片段中实现它

    public class RemindActivity extends AppCompatActivity
        implements RadListViewClickListener{
    
         public void RadListViewClick(View v, int positon) {
    
    
         }
    }
    

    在你的适配器

    public class ReminderAdapter extends ListViewAdapter {
    
    private List<Map<String, Object>> dataList;
    private Context mContext;
    private  RadListViewClickListener mListener;
    public ReminderAdapter(List items, Context context,RadListViewClickListener listener) {
        super(items);
        this.dataList = items;
        this.mContext = context;
        this.mListener=listener;
    }
        class ReminderViewHolder extends ListViewHolder implements View.OnClickListener {
    
        TextView timeTextView;
    
        TextView remainTextView;
    
        ImageView selectImageView;
    
        View mView;
    
        public ReminderViewHolder(View itemView) {
            super(itemView);
    
            timeTextView = (TextView) itemView.findViewById(R.id.custom_remind_list_timeTextView);
            remainTextView = (TextView) itemView.findViewById(R.id.custom_remind_list_remainTextView);
            selectImageView = (ImageView) itemView.findViewById(R.id.custom_remind_list_selectImage);
            mView = (View) itemView.findViewById(R.id.custom_remind_list_horizontal_line);
            itemView.setOnclickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    mListener.RadListViewClick(itemView,getAdapterPosition());
                }
            });
        }
    
        @Override
        public void onClick(View v) {
            if(v instanceof  MaterialRippleLayout){
                mListener.RadListViewClick(selectImageView,this.getPosition());
            }
        }
    }
    

    这就是全部了,有人有其他好的答案吗?我希望它。太棒了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      相关资源
      最近更新 更多