如您所见,我正在将主要活动中的信息转移到第二个活动中。之后,当我尝试打印到 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
}
}
我注意到有一些事情是错误的。所以,我将从基础开始。
要启用数据绑定或视图绑定,请转到您的
build.gradle
模块文件。
现在您应该看到一个如下所示的文件:
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
}
现在:
完成这些后,您应该能够访问您的 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)