入坑
入坑Android Studio,感觉安卓.xml+.kt有点像java scenebuilder之下的.fxml+.java呢。里面.xml文件控制界面布局,.kt文件做逻辑处理,还好上学期糊过java大作业,上手不是特别困难,就是Kotlin没分号看起来很难受…
UI控件最基础的两个属性:引用id和文本
在res->values->strings.xml中定义所需的字符串
计算年龄
就只有三个部分,输入文本、显示文本、提交按钮,就给Button一个Listener,当按钮按下时检测输入文本并对显示文本做出操作,需要注意的是捕获异常,貌似抛出异常的话模拟器上的程序直接就崩溃了。qwq
package com.example.calaage
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Editable
import android.view.Gravity
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import java.lang.Exception
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*通过findViewById方法和R.id.UIID访问UI控件 */
val displayedAge = findViewById<TextView>(R.id.displayedAge);
val birthDate = findViewById<EditText>(R.id.birthDate);
val ckBtn = findViewById<Button>(R.id.button);
/*kotlin更改UI控件的属性*/
displayedAge.setTextColor(Color.RED);
displayedAge.textSize = 18.0F;
displayedAge.gravity = Gravity.CENTER;
/*设置listener */
ckBtn.setOnClickListener {
//设置try 否则在非数字的非法输入下程序直接崩溃
try {
if (!birthDate.text.isBlank()) {
var ans: Int = 2021 - birthDate.text.toString().toInt();
displayedAge.text = ans.toString();
} else displayedAge.text = "请输入出生日期";
} catch (e : Exception) {
displayedAge.text = "您输入的东西爆炸了额";
}
}
}
}