1.开启viewBinding功能 在项目build.gradle 中加入:
viewBinding.enabled = true
2.Activity 绑定
java 代码:
private ActivityMainBinding mBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());
mBinding.textView.setText("HelloWorld");
}
kotlin 代码:
private lateinit var mBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityMainBinding .inflate(layoutInflater)
setContentView(mBinding.root)
mBinding.textView.text("HelloWorld");
}
3.fragment中使用
public class MainFragment extends Fragment {
private FragmentMainBinding mBinding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding = FragmentMainBinding.inflate(inflater, container, false);
mBinding.textView.setText("测试");
return mBinding.getRoot();
}
}
4.在 Dialog中使用
Dialog dialog = new Dialog(getContext());
DialogTipBinding dialogTipBinding = DialogTipBinding.inflate(LayoutInflater.from(getContext()));
dialog.setContentView(dialogTipBinding.getRoot());
dialogTipBinding.tvTip.setText("温馨提示");
dialog.show();
5.在 RecyclerView.Adapter中使用
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<String> mDataList;
public MyAdapter(List<String> mDataList) {
this.mDataList = mDataList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
RecyclerItemAdapterBinding binding = RecyclerItemAdapterBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
MyViewHolder myViewHolder = new MyViewHolder(binding);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.mBinding.tvPrice.setText(mDataList.get(position));
}
@Override
public int getItemCount() {
return this.mDataList.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
RecyclerItemAdapterBinding mBinding;
public MyViewHolder(@NonNull RecyclerItemAdapterBinding binding ) {
super(binding.getRoot());
mBinding = binding;
}
}
}
6.在 Layout 文件中有include使用
新建include_cotent.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private ActivityMainBinding mBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());
IncludeContentBinding includeContentBinding = IncludeContentBinding .bind(mBinding.getRoot());
includeContentBinding.content.setText("内容..");
}
}