Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

4.5. DataBinding

4.5.1. 启用 DataBinding

			
	buildFeatures {
        dataBinding = true
        viewBinding=true
    }			
			
			

viewBinding=true 是开启 Layout DataBinding 的关键

			
plugins {
    alias(libs.plugins.android.application)
}

android {
    namespace = "cn.netkiller.webrtc"
    compileSdk = 35

    defaultConfig {
        applicationId = "cn.netkiller.webrtc"
        minSdk = 35
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
    buildFeatures {
        dataBinding = true
        viewBinding=true
    }
}

dependencies {

    implementation(libs.appcompat)
    implementation(libs.material)
    implementation(libs.activity)
    implementation(libs.constraintlayout)
//    implementation(libs.webrtc)
    implementation(libs.camera.view)
    implementation(libs.camera.lifecycle)
    testImplementation(libs.junit)
    androidTestImplementation(libs.ext.junit)
    androidTestImplementation(libs.espresso.core)
    implementation(files("libs/google-webrtc-1.0.32006.aar"))
}			
			
			

4.5.2. MainActivity 中使用 ActivityMainBinding

以 MainActivity 为例,为 MainActivity 添加 DataBinding

			
import cn.netkiller.student.databinding.ActivityMainBinding;
			
			

定义 binding 变量

			
public class MainActivity extends AppCompatActivity {
    private static final String TAG = MainActivity.class.getSimpleName();
    private ActivityMainBinding binding;
			
			
			
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());
	}
			
			

4.5.3. ViewDataBinding 例子

			
ViewDataBinding activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);