app - src - main - res - layout Layout리소스파일 만들기
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listItem"
android:layout_width="match_parent"
android:layout_height="45dp"
android:paddingTop="10dp"
android:paddingStart="30dp"
android:textColor="@android:color/darker_gray"
android:textSize="15sp"
android:paddingLeft="30dp"/>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.044"/>
<GridView
android:id="@+id/grid"
android:columnWidth="100dp"
android:layout_width="471dp"
android:layout_height="602dp"
tools:ignore="MissingConstraints"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.507"
app:layout_constraintVertical_bias="0.765"/>
</androidx.constraintlayout.widget.ConstraintLayout>
class MainActivity : AppCompatActivity() {
val b by lazy { ActivityMainBinding.inflate(layoutInflater) }
var items = arrayOf( // 스크롤기능 확인을 위해 중복작성
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백",
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백",
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백",
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백",
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백",
"서울", "부산", "대구", "광주", "인천", "목포", "여수", "태백"
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(b.root)
// grid 목록생성
// item_spinner레이아웃에 items들을 각각 넣은 리스트 grid에 세팅
b.grid.setAdapter(
ArrayAdapter(this, R.layout.item_spinner, items)
)
// 항목 클릭시 이벤트
b.grid.setOnItemClickListener{ parent, View, position, id ->
b.textView.text = items[position]
// 클릭시 textView의 text가 해당항목의 값으로 바뀜
}
}
}
첫 실행화면
서울 터치 시 textView변경 및 스크롤기능도 정상작동
// activity_main - GridView
android:numColumns="auto_fit"
GridView에 해당 코드 추가작성
첫 실행화면
부산 터치 시 textView변경