绑定在新活动中不可见

问题描述 投票:0回答:1

如您所见,我正在将主要活动中的信息转移到第二个活动中。之后,当我尝试打印到 Textview 时,它看不到它。有什么解决办法吗?主要Android Studio 错误代码块

我正在尝试 ActivityMain2Binding,但它与 Ikınciactivty 不兼容

class IkıncıActiviy : AppCompatActivity() {
lateinit var binding: IkıncıActiviy
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    enableEdgeToEdge()
    binding = IkıncıActiviy.inflate(layoutInflater)

    setContentView(R.layout.activity_main2)
    ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
        val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
        v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
        insets
    }
    val intent = intent
    val alinanVeri = intent.getStringExtra("veri")
    binding.textView.text = alinanVeri

}

}

android kotlin
1个回答
0
投票

我注意到有一些事情是错误的。所以,我将从基础开始。

要启用数据绑定或视图绑定,请转到您的

build.gradle
模块文件。 Files in Gradle Script Package

现在您应该看到一个如下所示的文件:

android {
    namespace = "com.example.firsttask"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.firsttask"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose = true
        viewBinding = true // enable depending upon your use case
        dataBinding = true // enable depending upon your use case
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.2"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

如上面的代码所示,根据您的用例添加行

buildFeatures {
        compose = true
        viewBinding = true // enable depending upon your use case
        dataBinding = true // enable depending upon your use case
    }

现在:

  1. 转到构建>清理项目
  2. 项目清理完毕后
  3. 重建它,转到“构建”>“重建项目”

完成这些后,您应该能够访问您的 Binding 类,如果不能,请尝试通过转到“文件”>“使缓存无效”来清理和使缓存无效...

最后,如何访问绑定文件: 绑定文件通常以 Binding 结尾并遵循此命名法,XML 文件的名称以 Binding 结尾。例如,假设 XML 文件名为

activity_main.xml
,则生成的相关 Binding 类将为
ActivityMainBinding
。最后你打电话给
inflate on the file

在您的情况下,生成的绑定类应如下所示:

    // Change the Global Variable Defination
    private lateinit var binding: ActivityMain2Binding
    // inside onCreate Method
    binding = ActivityMain2Binding.inflate(layoutInflater)
    setContentView(binding.root)
© www.soinside.com 2019 - 2024. All rights reserved.