4gats 2023. 3. 13. 23:14

뷰를 클릭할 때 특정 기능을 수행하도록 하기 위해

android:clickabletrue로 설정하고

android:onClick 속성에는 클릭 이벤트 발생 시에

자동으로 수행될 메소드명(ex : press)을 기입

 

사용자가 뷰를 터치하면 뷰는 이벤트를 시스템에 통지 (콜백(callback) 메소드)

시스템은 MainActivity.java에서 구현한 press를 호출

 

액티비티 호출과 액티비티 간 정보 전달은 인덴트 클래스를 이용

 

View 클래스

android:clickable

클릭 이벤트에 대한 반응 여부를 정의(true, false)

 

android:id

뷰를 구별하기 위한 이름

android:id="@+id/아이디 이름"

 

android:onClick

뷰가 클릭될 때 실행되는 메소드의 이름

여기서는 "displayPicture"

이 메소드를 MainActivity.java에 추가해야한다!

 

android:tag

문자열로 나타내는 태그

 

MainActivity.java

import android.widget.Toast;
public void displayPicture(View v)
{
    int id = v.getId();
    LinearLayout layout = (LinearLayout) v.findViewById(id);
    String tag = (String) layout.getTag();

    Toast.makeText(this, "클릭한 아이템: " + tag, Toast.LENGTH_LONG).show();
}

Toast

화면에 작은 팝업 창으로 사용자에게 간단한 메시지를 전달

LENGTH_SHORT , LENGTH_LONG

 

 

Intent 클래스

액티비티 호출과 정보 전달에 사용

//주어진 class에 대해 지정한 액션을 하는 인텐트 생성
Intent it = new Intent(this, Picture.class);
//인텐트에 name의 값을 value로 할당
it.putExtra("it_tag", tag);
// 인텐트에서 지정한 액티비티를 실행
startActivity(it);

 

'명화 상세' 액티비티 추가 및 수정

xml 추가 & 자바 클래스 추가