首页 > 其他分享 >20240202

20240202

时间:2024-02-03 11:47:42浏览次数:23  
标签:XML 控件 20240202 savedInstanceState 添加 inputText onCreate

UI开发的学习,XML和Jetpack Compose

XML编写界面的基础

使用XML添加控件,在对应的XML文件中添加控件元素,然后添加对应的属性改变样式

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	...>
	...
	<TextView
		android:id="@+id/textView"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:gravity="center"
		android:textColor="#00ff00"
		android:textSize="24sp"
		android:text="This is TextView"/>
	<Button
		android:id="@+id/button"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:text="Button" />
	<EditText
		android:id="@+id/editText"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"/>
	...
</LinearLayout>

之类书上抄的的这样的东西
然后在Activity中通过“函数式API”或者“实现接口”的方法注册控件的事件,kotlin-android-extensions提供了根据布局文件中的控件ID创建同样名称的变量功能,可以直接使用这个控件的实例。
函数式API注册按钮事件:

override fun onCreate(savedInstanceState: Bundle?) {
	super.onCreate(savedInstanceState)
	setContentView(R.layout.activity_main)
	button.setOnClickListener {
		// 在此处添加逻辑
	}
}

实现View.OnClickListener接口注册按钮事件

override fun onCreate(savedInstanceState: Bundle?) {
	super.onCreate(savedInstanceState)
	setContentView(R.layout.activity_main)
	button.setOnClickListener(this)
}
override fun onClick(v: View?) {
	when (v?.id) {
		R.id.button -> {
			// 在此处添加逻辑
		}
	}
}

通过editText实例获取输入的内容

val inputText = editText.text.toString()

用Jetpack Compose做同样的事情

Column {  
	Text("This is a Text",  
		textAlign = TextAlign.Center,  
		color = Color.Green,  
		fontSize = 24.sp,  
		modifier = Modifier.fillMaxWidth()  
	)  
	var inputText by remember { mutableStateOf("")}  
	TextField(value = inputText,  
		onValueChange = {newText -> inputText = newText},  
		modifier = Modifier.fillMaxWidth()  
	)  
	Button(modifier = Modifier.fillMaxWidth(),
		onClick = {
			Toast.makeText(this@MainActivity,inputText,Toast.LENGTH_SHORT).show()
		}) {  
			Text(text = "Button")  
		}
}

标签:XML,控件,20240202,savedInstanceState,添加,inputText,onCreate
From: https://www.cnblogs.com/sugar-refinery/p/18004474

相关文章

  • 20240202-训练赛随记
    机场检录//二分#include<bits/stdc++.h>usingnamespacestd;longlongn,m,a[100005];boolcheck(longlongx){longlongt=0;for(inti=1;i<=n;i++)t+=(x/a[i]);returnt>=m;}intmain(){cin>>n>>m;for(inti=1;i<......