inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

화면 클릭 이벤트 처리 - findViewById, Toast

[BTS앱] 화면 클릭 이벤트 처리 - findViewById, Toast

155

xylblv

작성한 질문수 2

0

스크린샷 2025-02-01 150349.png.webpimage.png

 

코드 똑같이 쳤는데 test device에서 첫번째 이미지 클릭시 "1번째 클릭 완료" 문구가 나오지 않습니다..

android kotlin firebase

답변 2

0

개복치개발자

전체 코드를 복사해서 공유해주시겠어요? Activity xml 모두 복사해주세요 ㅎㅎ

0

xylblv

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp">

        <ImageView
            android:id="@+id/btsImage1"
            android:src="@drawable/bts_1"
            android:layout_width="120dp"
            android:layout_height="120dp"/>

        <ImageView
            android:src="@drawable/bts_2"
            android:layout_width="120dp"
            android:layout_height="120dp"/>

        <ImageView
            android:src="@drawable/bts_3"
            android:layout_width="120dp"
            android:layout_height="120dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp">

        <ImageView
            android:src="@drawable/bts_4"
            android:layout_width="120dp"
            android:layout_height="120dp"/>

        <ImageView
            android:src="@drawable/bts_5"
            android:layout_width="120dp"
            android:layout_height="120dp"/>

        <ImageView
            android:src="@drawable/bts_6"
            android:layout_width="120dp"
            android:layout_height="120dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp">

        <ImageView
            android:src="@drawable/bts_7"
            android:layout_width="120dp"
            android:layout_height="120dp"/>
    </LinearLayout>




</LinearLayout>

0

xylblv

package com.xylbllv.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ImageView
import android.widget.Toast


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        // 1. 프로그램이 화면이 클릭되었다는 것을 알아야 합니다!
        val image1 = findViewById<ImageView>(R.id.btsImage1)
        image1.setOnClickListener {

            Toast.makeText(this, "1번 클릭 완료", Toast.LENGTH_LONG).show()

        }



        // 2. 화면이 클릭되면, 다음 화면으로 넘어가서, 사진을 크게 보여줌!




    }
}

0

개복치개발자

https://www.youtube.com/watch?v=sY8Q3fLas3Q
위의 코드로 정상동작하는걸 확인했습니다
가끔 디바이스를 예전걸로 만들면 토스트메세지가 안뜰 떄가 있는데 위의 영상 참고해서 다시 만들어서 해보시겠어요?

0

xylblv

image.png

Could not read workspace metadata from C:\Users\wjdtp\.gradle\caches\8.9\transforms\41dbf738ef9a763802d2faec6fb4c6df\metadata.bin



선생님 이 오류 메세지 때문일까요?

0

개복치개발자

혹시 새롭게 프로젝트를 만드셔서 빌드해도 마찬가지이신가요?
만약 그렇다면 전체 프로젝트를 압축해서 깃허브나 구글 드라이브에 공유해주시면 살펴보겠습니다.

0

xylblv

넵ㅠㅠ

확인 부탁드립니다!
https://drive.google.com/drive/folders/1qDl-Spv709ko__1M-HI0RItbNR9jhtF_?usp=drive_link

0

개복치개발자

안녕하세요 세빈님

해당 링크에 엑세스 거부라고 뜨는데, 권한을 전체공개로 바꿔주시겠어요?

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. jepngsebin051102님.

화면의 클릭 이벤트가 발생하지 않는 문제는 여러 가지 원인일 수 있습니다. 아래와 같은 사항을 확인해 보세요:

  1. 레이아웃 파일 확인: activity_main.xml 파일에서 btsImage1의 ID가 정확하게 설정되어 있는지 확인해 주세요. 코드에서 사용한 ID와 XML 파일의 ID가 일치해야 합니다.

  2. 프로젝트 Clean 및 Rebuild: Android Studio에서 Build 메뉴로 가서 Clean ProjectRebuild Project를 시도해 보세요. 이 작업이 종종 캐시 문제를 해결해 줄 수 있습니다.

  3. 로그캣(Logcat) 확인: 앱을 실행한 후 Android Studio의 Logcat 창을 확인하여 오류 메시지가 있는지 확인해 보세요. 오류 메시지가 있다면, 그 내용을 바탕으로 문제를 진단할 수 있습니다.

  4. 이미지 뷰 추가 위치 확인: onCreate 함수 안에 모든 findViewById 및 이벤트 리스너 등록 코드가 들어가는지 확인하세요. 또한 setContentView 호출 후에만 실행해야 합니다.

비슷한 사례와 도움을 받을 수 있는 질문들은 아래 링크들을 참고해 주세요:

  1. intend 코드가 들어가면 앱이 동작하지 않습니다..

    • 코드에서 인텐트 부분이 잘못되었을 가능성에 대한 논의가 있습니다. Intent 구조를 확인해 보시는 것도 도움이 될 것입니다.
  2. 화면 클릭 이벤트 처리 - findViewById, Toast

    • 자동완성과 findViewById 문제에 관련한 질문입니다. 이럴 경우에는 프로젝트 환경설정이나 버전 문제도 고려해야 합니다.
  3. 화면 클릭 이벤트 처리 - findViewById, Toast 에서 07:08 에서 문제가 생겼습니다.

    • ImageView의 import 문제 해결 방법에 대한 설명이 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

주사위앱 소개 및 레이아웃 설정 문제

0

77

2

안드로이드 에뮬레이터가 실행이 안 되요...ㅠ

0

128

2

30 강 소스 좀 올려 주십시요

0

94

2

onBackPressed 함수가 동영상 하고 다르게 동작합니다.

0

104

2

ListView 초기 실행 안됩니다.

0

106

2

코딩을 완료하고난후 앱 실행시 자동 종료

0

81

2

datavinding에서 오류가 납니다.

0

61

1

안드로이드 스튜디오 버전 차이로 초기 empyt activity 선택하면 안됩니다.

0

129

2

context의 구별에 대하여

0

80

2

"프롤로그에서 ..." 오류 관련해 직전 질문에 대한 추가 질문입니다.

0

77

2

"프롤로그에서 콘텐츠가 허용되지 않습니다." 오류

0

172

3

해결완료

1

197

2

databinding 설정후 run하면 에러(해결)

0

230

2

databinding 설정 이후 실행시 에러

0

286

4

안드로이드 입문하는 사람입니다.

0

74

1

Firebase uid

0

87

3

activity_main 화면 다름

0

123

2

강의화면과 다른데 맞게진행되는것인가요...????

0

115

2

파이어베이스 질문

0

81

2

ActivityMainBinding에 오류가 납니다

0

141

2

선생님 onBackPressed 작동이 안되는거 같습니다

0

124

2

>app>res>layout 이 존재하지 않습니다.

0

122

2

안드로이드 스튜디오 미어캣 버전 사용 한글 깨짐

0

773

2

안드로이드 스튜디오 오류 발생 시 대처 방법은 요?

0

302

2