令我困惑的是如何绑定视图Recycleler.ViewHolder.这是我的简单适配器以及如何将其转换为kotlin使用kotlin-android-extensions而没有ButterKnife?
public class RoomAdapter extends RecyclerView.Adapter<ViewHolder> {
private OnItemClickListener mListener;
private List<LocationBean> mRooms;
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.tv_title)
TextView tvTitle;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
public void setData(List<LocationBean> rooms) {
mRooms = rooms;
notifyDataSetChanged();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_first_select, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.tvTitle.setText(mRooms.get(position).getLocation());
holder.itemView.setOnClickListener(new OnClickListener() {
@Override …Run Code Online (Sandbox Code Playgroud) 我正在尝试首次使用Kotlin构建Android应用程序.
我想在OnCreate方法之外的一些按钮上声明,我只能用findViewById在这个函数内初始化它们.
我可以在java中简单而干净的代码中声明吗?
private Button btnProceed;
Run Code Online (Sandbox Code Playgroud)
因为在将其转换为Kotlin时,它看起来像:
private var btnProceed: Button? = null
Run Code Online (Sandbox Code Playgroud)
然后在初始化OnClick函数时需要添加!标志:
btnProceed!!.setOnClickListener
Run Code Online (Sandbox Code Playgroud)
什么是正确和最干净的方式?