메인화면 | 정보 작성 화면 |
밑에 FloatingActionButton을 누르면 정보 작성 화면으로 넘어간 뒤 정보를 작성하고 +버튼을 누르면 입력된 정보를 저장 / 화면에 표시 |
1. layout
너무 길어져서 코드 생략
TextView, EditText, ImageView, GuideLine, RadioGruop, RadioButton, Spinner 사용
(github 링크 걸어둘 예정)
2. viewbinding 기본 설정
// MainActivity.kt
...
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
쓰기전에 당연히 app수준의 build.gradle에서 sync 먼저
3. 화면 전환()
- floatingActionButton으로 간단하게 화면 전환
//위에 코드에 넣어주면 된다.
binding.goInputActivityButton.setOnClickListener {
val intent = Intent(this,EditActivity::class.java)
startActivity(intent)
}
4. Spinner의 item 추가
4-1) res -> arrays라는 values 파일 생성
4-2) 코드 작성
//arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="mbti_types">
<item>INFP</item>
<item>ENFP</item>
<item>ESFJ</item>
<item>ISFJ</item>
<item>ISFP</item>
// ...
// 생략
// ...
<item>ESTP</item>
<item>ENTJ</item>
</string-array>
</resources>
4-3) 코드 작성2
//EditActivity.kt
binding.MBTITypeSpinner.adapter = ArrayAdapter.createFromResource(
this,
R.array.mbti_types,
android.R.layout.simple_list_item_1
)
5. 나머지 코드
5-1) 생년월일 구현
//EditText.kt
binding.birthdateLayer.setOnClickListener {
val listener = OnDateSetListener { _, year, month, dayOfMonth ->
binding.birthdateTextView.text = "$year-${month.inc()}-$dayOfMonth"
}
DatePickerDialog(
this,
listener,
2000,
1,
1,
).show()
}
5-2) 취미 CheckBox 구현
//EditActivity.kt
binding.hobbyCheckBox.setOnCheckedChangeListener { _, isChecked ->
binding.hobbyEditText.isVisible = isChecked
}
binding.hobbyEditText.isVisible = binding.hobbyCheckBox.isChecked
// 나머지 기능구현은 다음 글에 작성
'Android Studio > base_Project' 카테고리의 다른 글
[기본] 갤럭시 스톱워치 클론코딩 (2/3 기능구현) (0) | 2024.02.07 |
---|---|
[기본] 갤럭시 스톱워치 클론코딩 (1/3 분석단계 및 UI ) (0) | 2024.02.06 |
[기본] 안드로이드 계산기 클론 코딩 (2/2) 완료X (1) | 2024.02.06 |
[기본] android 계산기 클론 코딩 (1/2) (0) | 2024.02.05 |
[기본] 개인 정보 등록 앱 구현하기 (2/2) (0) | 2024.02.01 |