当我尝试使用任何 DataBindingUtil 方法时,例如:
DataBindingUtil.setContentView()
我得到: Canot解析符号'使用的方法'
然后我在 DataBindingUtil 类中检查了DataBindingUtil.class
中有很多遗漏的东西我像这样编造gradle:
android {
....
dataBinding {
enabled = true
}
}
这是我的DataBidingActivity
:
public class DataBidingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataBidingActivity biding = new DataBindingUtil.setContentView(this,
R.layout.activity_data_biding);
}
}
我的activity_data_biding
:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
</layout>
答案 0 :(得分:0)
我看到了您的代码,因此我建议您必须将类型DataBidingActivity
修改为ActivityDataBidingBinding
,因为必须在布局xml名称和类型值之间进行匹配,正如我在回答中所说的那样。
您必须在new
之前移除DataBindingUtil
关键字。
所以我修改了你的代码。
import com.kick.iot.autohome.R;
import android.app.Activity;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
public class DataBidingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//here is my answer
ActivityDataBidingBinding binding = DataBindingUtil.setContentView(this,
R.layout.activity_data_biding);
}
}
您导入了import android.databinding.DataBindingUtil;
吗?
也许您必须声明'xxxBinding'值才能使用DataBindingUtil方法。例如,当您的活动布局名称为activity_main.xml
时,您可以创建ActivityMainBinding
类型的值。
此类型已由DataBinding Library准备。如果布局xml文件的名称不同,则必须匹配xml的名称和数据绑定类型之间的名称
activity_main.xml =&gt; ActivityMainBinding
activity_controller.xml =&gt; ActivityControllerBinding
就我而言,我写了这样的代码
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
答案 1 :(得分:0)
确保添加以下内容
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
并在activity_main
中添加<layout>
标记作为根标记
如果你这样做 - 重启你的android工作室
答案 2 :(得分:0)
刚刚通过重新启动Android Studio解决了相同的问题。 :(