메뉴 건너뛰기

조회 수 321 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. 토스트(Toast) 사용하기

public class MainActivity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void ClickHandler(View view)
    {
        Toast myToast = Toast.makeText(this.getApplicationContext(),"", Toast.LENGTH_SHORT);
        myToast.show();
    }
}

▼ 버튼을 클릭하였을 때 Toast 메시지를 띄우는 간단한 예제입니다. ClickHandler() 함수는 버튼 클릭에 대한 이벤트를 처리하는 함수로 Toast를 생성하여 화면에 보여주는 작업을 진행합니다. 

 

먼저 Toast 메시지를 띄우기 위해서는 Toast 클래스의 static 멤버 함수인 makeText() 함수를 통하여 Toast 객체를 생성해야 합니다. makeText() 함수에는 3개의 인자 정보를 넘겨줍니다. 

 

첫 번째 인자는 현재 프로세스의 Context 정보를 넘겨주고 두 번째 인자는 Toast 메시지로 사용자에게 보여줄 문자열을 넘겨줍니다. 또는 아래와 같이 문자열 리소스를 정의해놓고 해당 리소스 ID를 인자로 넘겨줄 수 있습니다.

<resources>
    <string name="app_name">My Application</string>
    <string name="TOAST_MESSAGE">"이것은 Toast 메시지입니다."</string>
</resources>
 public void ClickHandler(View view)
 {
     Toast myToast = Toast.makeText(this.getApplicationContext(), R.string.TOAST_MESSAGE, Toast.LENGTH_SHORT);
     myToast.show();
 }

 

▼ 문자열 리소스 TOAST_MESSAGE를 정의해놓고 자바 소스상에서 makeText() 함수의 두 번째 인자로 해당 문자열 리소스ID를 넘겨주는 모습입니다. 

 

마지막 세 번재 인자는 Toast 메시지를 화면에 띄우는 시간을 지정하는 인자로 Toast 클래스 안에 정의된 static 멤버 변수로 지정이 가능합니다.

 

인자값 설명
Toast.LENGTH_SHORT 짧게 Toast 메시지를 표시합니다.
Toast.LENGTH_LONG 길게 Toast 메시지를 표시합니다.

 

makgeText() 함스의 리턴값인 Toast 객체를 myToast를 통해 참조하도록 하고 show() 함수를 통해 Toast 메시지를 띄울 수 있습니다. 만약 Toast를 따로 커스텀하지 않는다면 아래와 같이 참조 객체를 지정하지 않고 사용이 가능합니다.

public void ClickHandler(View view)
{
    Toast.makeText(this.getApplicationContext(),"이것은 Toast 메시지입니다.", Toast.LENGTH_SHORT).show();
}

▼ makeText() 함수를 호출하고 참조 객체에 리턴값을 저장하지 않고 곧바로 show() 함수를 호출하는 형태입니다.

 

 

 

▼ 따로 커스텀을 하지 않았기 때문에 기본적인 형태의 Toast 메시지가 화면 하단에 표시되는 것을 확인할 수 있습니다.

 

2. Toast 레이아웃 지정하기

Toast의 레이아웃은 setView(View view) 함수를 통해서 자유롭게 지정이 가능합니다. 먼저 Toast의 레이아웃으로 사용할 XML 레이아웃 리소스를 정의하기 위해 리소스 파일을 생성합니다.

 

 

 

    <TextView
        android:id="@+id/Toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:text="이것은 Custom Toast 메시지입니다"
        android:textColor="@color/colorPrimaryDark" />

▼ toast_layout_xml을 생성하고 TextView 한 개를 배치한 형태로 레이아웃을 정의합니다.

public class MainActivity extends AppCompatActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void ClickHandler(View view)
    {
        Toast myToast = Toast.makeText(this.getApplicationContext(),"", Toast.LENGTH_SHORT);

        myToast.setGravity(Gravity.CENTER, 0,0 );
        View toastLayout = getLayoutInflater().inflate(R.layout.toast_layout, null);

        myToast.setView(toastLayout);
        myToast.show();
    }
}

▼먼저 makeText() 함수를 통해 Toast 객체를 생성하고 myToast가 참조하도록 합니다. setGravity() 함수를 통해 Toast가 표시되는 위치를 지정합니다. 예제에서는 Gravity.CENTER로 지정하고 X, Y 값은 0으로 지정하여 화면 정중앙에 표시되도록 설정하였습니다.

 

다음으로 Toast에 지정할 레이아웃을 생성하여 toastLayout이 참조하도록 하고 setView()를 통해 Toast의 레이아웃을 지정합니다.

 

 

 

 


List of Articles
번호 제목 날짜 조회 수
257 화면 회전에 따른 애니메이션 효과 구현하기 2015.07.16 8055
256 화면 해상도에 관계없는 레이아웃(Layout) 만들기 file 2015.07.16 8641
255 화면 전환해도 데이터 유지 예제 2015.07.26 9204
254 하이브리드앱 기본 - WebView로 웹페이지 띄우기 file 2020.12.14 1025
253 하이브리드 앱에서의 세션관리(로그인 상태 유지) 2018.12.27 5002
252 푸시 서비스(GCM)에 대해 알아보자 file 2015.07.01 7000
251 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (3) file 2015.07.16 6267
250 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (2) file 2015.07.16 7292
249 푸쉬 알림 기능. GCM (Google Cloud Messaging) 사용하기 (1) file 2015.07.16 6726
248 폰갭(PhoneGap) 플러그인 사용하기 2015.06.29 7360
247 폰갭(PhoneGap) 플러그인 만들기 2015.06.29 8436
246 폰갭(PhoneGap) 에서 페이지들간의 이동 2015.06.29 8474
245 폰갭(PhoneGap) & jQuery Mobile 로 안드로이드 어플 개발 file 2015.06.29 7839
244 폰갭 비콘 디텍팅 안될 때 (기본적인건 다 되있어야됨) 2015.07.26 6529
243 패키지명을 한꺼번에 변경하기 (Refactor) file 2020.12.14 295
242 특정 폴더에서 오래된 파일 삭제하기 2015.07.16 6767
241 트리뷰(TreeView) 컨트롤 file 2014.10.16 6722
240 탭 뷰에 탭 추가하기, 아이콘 넣기 file 2015.07.16 9360
239 클래스나눠서 xml 파싱과 FTP를이용하여 안드로이드에서 활용하기 2014.08.28 6180
238 카카오톡 분석하기 (2) - 카카오톡 암호화 함수 찾기 file 2016.05.26 9600
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved