Android - Toast, 대화상자
이 글에서는 Toast, 대화상자, 그리고 Fragment에 대해 적겠다.
이때 쓰이는 함수는 Toast의 maketext()이다.
maketext(Context context, CharSequence text, int duration)
Context context : context를 설정한다.
onCreate() 함수 내에서는 getApplicationContext() ,
같은 Activity내에서는 this,
Fragment에서는 getActivity() 를 지정한다.
CharSequence text : 보여줄 메시지를 설정한다. String형태로 넣어주면 된다.
int duration : 메시지를 보여줄 시간길이를 설정한다.
Toast.LENGTH_SHORT 혹은 Toast.LENGTH_LONG 을 넣을 수 있다.
아래는 개인적으로 응용한 예제이다. Listview에서 리스트 아이템을 클릭하면 "빈 테이블입니다"라는 문장이 뜨게 하는 액티비티의 일부이다.
Toast의 위치지정
Toast 변수 하나를 선언하고, 위에 설명한 기본형에 위치지정(setGravity)을 추가한다.
setGravity(int Gravity, int xOffset, int yOffset)
Gravity : Toast가 치우치게 할 방향을 결정한다. 2개까지 동시에 사용가능한데, 같이 사용할때는 | (or)기호를 넣는다.
xOffset, yOffset : Gravity기준으로 추가적으로 이동할 x,y 좌표를 설정한다.
Toast에 사용자정의 레이아웃을 사용하는 방법
1. 먼저 Toast용으로 쓸 layout을 만들어놓는다. 기존 레이아웃처럼 하면 된다.
2. 사용자정의 레이아웃을 Toast에 연결하기 위해 아래처럼 코드들 입력한다.
3. 실행해서 자신이 지정한 레이아웃 모양대로 나오는지 확인해본다.
대화상자
Toast
Toast는 앱 내에서 구름같은 메시지를 표시하는 위젯이다.Toast - 기본형
메시지를 띄우기 위해, onCreate() 내에 다음 코드를 넣고 실행하면 "문장 출력"이란 Toast메시지가 아래쪽에 잠시 나타났다가 사라질 것이다.Toast.makeText(getApplicationContext(), "문장 출력",Toast.LENGTH_SHORT).show();
이때 쓰이는 함수는 Toast의 maketext()이다.
maketext(Context context, CharSequence text, int duration)
Context context : context를 설정한다.
onCreate() 함수 내에서는 getApplicationContext() ,
같은 Activity내에서는 this,
Fragment에서는 getActivity() 를 지정한다.
CharSequence text : 보여줄 메시지를 설정한다. String형태로 넣어주면 된다.
int duration : 메시지를 보여줄 시간길이를 설정한다.
Toast.LENGTH_SHORT 혹은 Toast.LENGTH_LONG 을 넣을 수 있다.
아래는 개인적으로 응용한 예제이다. Listview에서 리스트 아이템을 클릭하면 "빈 테이블입니다"라는 문장이 뜨게 하는 액티비티의 일부이다.
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { Toast.makeText(getActivity(), "빈 테이블입니다.",Toast.LENGTH_SHORT).show(); } } });
Toast의 위치지정
Toast 변수 하나를 선언하고, 위에 설명한 기본형에 위치지정(setGravity)을 추가한다.
Toast tview = Toast.makeText(getApplicationContext(), "일반 메시지 창입니다.", Toast.LENGTH_SHORT); tview.setGravity(Gravity.LEFT | Gravity.TOP, 10, 20); tview.show();
setGravity(int Gravity, int xOffset, int yOffset)
Gravity : Toast가 치우치게 할 방향을 결정한다. 2개까지 동시에 사용가능한데, 같이 사용할때는 | (or)기호를 넣는다.
미리 정의된 방향상수: Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM, Gravity.RIGHT
xOffset, yOffset : Gravity기준으로 추가적으로 이동할 x,y 좌표를 설정한다.
Toast에 사용자정의 레이아웃을 사용하는 방법
1. 먼저 Toast용으로 쓸 layout을 만들어놓는다. 기존 레이아웃처럼 하면 된다.
2. 사용자정의 레이아웃을 Toast에 연결하기 위해 아래처럼 코드들 입력한다.
View view = getLayoutInflater().inflate(R.layout.toastlay,null); TextView tv = (TextView) view.findViewById(R.id.toasttext); tv.setText("레이아웃으로 만든 토스트이다.");
Toast tview = new Toast(this); tview.setDuration(Toast.LENGTH_SHORT); tview.setGravity(Gravity.CENTER, 0, 100); tview.setView(view); tview.show();
3. 실행해서 자신이 지정한 레이아웃 모양대로 나오는지 확인해본다.
대화상자
대화상자는 팝업형태로 나타나 정보를 받거나, 메시지를 표시하는 위젯이다.
대화상자 - 기본형
기본형은 간단한 형태의 대화상자를 표시한다.
.setNegativeButton과 .setPositiveButton의 null 부분에는 OnClickListener를 별도로 지정할 수 있다.
AlertDialog.Builder dlg = new AlertDialog.Builder(this);
dlg.setTitle("기본대화상자")
.setIcon(R.mipmap.ic_launcher)
.setMessage("기본 대화상자다.")
.setNegativeButton("닫기", null)
.setPositiveButton("확인", null).show();
대화상자 - 사용자정의
기본형에 사용자 레이아웃을 적용한다.
View view = View.inflate(this, R.layout.layoutio, null); AlertDialog.Builder dlg = new AlertDialog.Builder(this); final EditText txt = (EditText) view.findViewById(R.id.editText3); dlg.setTitle("메뉴를 입력해라.")
.setView(view)
.setIcon(R.mipmap.ic_launcher)
.setNegativeButton("닫기", null)
.setPositiveButton("확인", null).show();
댓글
댓글 쓰기