【发布时间】:2021-02-18 17:34:42
【问题描述】:
我正在更新一个应用程序,并且我读到现在处理视图的推荐方法是使用视图绑定。我关注了the instructions,但是我遇到了一些问题:
使用以下作品添加点击侦听器:
((LinearLayout) findViewById(R.id.btn_login)).setOnClickListener(v -> {
Log.v(TAG, "findViewById press");
});
而以下不是
binding.btn_login.setOnClickListener(v -> {
Log.v(TAG, "View Binding press");
});
文档say it should。我想在一个新项目上尝试这个,以确保它在某种程度上与应用配置无关,但我得到了相同的结果 - 它不起作用。
我正在这样初始化它:
public class Login extends BaseClassFragmentActivity {
ActivityLoginBinding binding;
private final String TAG = "[LOGIN]";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
binding = ActivityLoginBinding.inflate(getLayoutInflater());
}
}
我做错了吗?
【问题讨论】:
-
好像没问题。将
binding和setContentView的初始化添加到您的问题中。 -
@HamidSj 感谢您的反馈。刚刚编辑,是的,看来我需要
setContentView(binding.getRoot())。这是为什么呢?
标签: android android-viewbinding