令我困惑的是如何绑定视图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) 如果我有一个简单的自定义视图:
myitem.xml
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<FrameLayout/>
Run Code Online (Sandbox Code Playgroud)
访问kotlinx syntentic属性:
import kotlinx.android.synthetic.main.myitem.view.*
view.toolbar.text = "Some text"
Run Code Online (Sandbox Code Playgroud)
在内部,它会生成一个调用findByViewID().所以我的问题是:
是否为活动或每次findByViewID调用每个自定义视图缓存结果?出于性能原因,答案非常重要.
我有代码:
package com.example.admin.maytinh
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.example.admin.maytinh.R.id.button
import com.example.admin.maytinh.R.id.editText
import com.example.admin.maytinh.R.id.editText2
import com.example.admin.maytinh.R.id.editText3
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener(View.OnClickListener{xuly()})
}
public fun xuly(){
val a:Int = editText.text.ToString().ToInt()
val b:Int = editText2.text.ToString().ToInt()
val c:Int = a + b
editText3.text = c.ToString()
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到错误:
任何人都可以为我解释为什么会这样并修复它谢谢