검색결과 리스트
글
안드로이드 상에서는 토스트보다 다이얼로그를 이용하여 경고 등과 같은 내용들을 표시한다.
왜냐면 토스트는 일정 시간이 지나면 자연적으로 사라지기 때문이다. 물론 finish를 이용하여 다이얼로그도 사라지게는 가능하다.
AlertDialog 같은 경우는 프로세스상 non-blocking 형태로 그 아래 코드까지 모두 사용된다. 여기에서 주의가 필요하다.
그 아래 코드에 finish 를 실행한다면.. 당연히 사라질테니까 말이다.
AlertDialog는 생성자가 protected 처리가 되어 있어서 Builder로 생성해야한다. AlertDialog.Builder(Context context) 를 호출하여 이용하면 된다. 그리고 다이얼로그를 보여주는데는 Show 와 Create 두가지 방법이 있다.
Create를 이용 할 경우 protected Dialog onCreateDialog(int id) 를 이용하여 생성 될 시 어떤 형태를 보여 주는가를 나타 낼 수 있으며, protected void onPrepareDialog(int id, Dialog dialog) 여기에서 그 내용을 적용 시킬 수 있다.
다음은 간단한 예제 코드이다.
public class ImageViewActivity extends Activity{
Button btns;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btns = (Button)findViewById(R.id.btn1);
btns.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
AlertDialog.Builder alt = new AlertDialog.Builder(ImageViewActivity.this);
alt.setTitle("Title");
alt.setMessage("대화상자 오픈");
alt.setIcon(R.drawable.ic_launcher);
alt.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showDialog(0);
}
});
alt.setNeutralButton("DON'T", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alt.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alt.setCancelable(false);
alt.show();
}
});
}
protected Dialog onCreateDialog(int id){
switch(id){
case 0 :
return new AlertDialog.Builder(ImageViewActivity.this).setTitle("Title").setMessage("Create").setPositiveButton("OK", null).create();
}
return null;
}
protected void onPrepareDialog(int id, Dialog dialog){
super.onPrepareDialog(id, dialog);
switch(id){
case 0 :
dialog.setTitle("TestTitle");
break;
}
}
}
코드를 보면 setPositiveButton,setNeutralButton,setNegativeButton 부분이 보일 것이다. 말 그대로 승인, 중립, 거부의 경우를 나타낸다.
또한 이들의 첫번째 인자는 버튼에 나타내는 텍스트를 의미하며 두번째 인자는 해당 이벤트를 연결 한 것이다.
이 이벤트 내용을 따로 정의하여 클릭 할 때 마다 다이얼로그를 생성하여 여러 작업을 수행 할 수가 있다.
왜냐면 토스트는 일정 시간이 지나면 자연적으로 사라지기 때문이다. 물론 finish를 이용하여 다이얼로그도 사라지게는 가능하다.
AlertDialog 같은 경우는 프로세스상 non-blocking 형태로 그 아래 코드까지 모두 사용된다. 여기에서 주의가 필요하다.
그 아래 코드에 finish 를 실행한다면.. 당연히 사라질테니까 말이다.
AlertDialog는 생성자가 protected 처리가 되어 있어서 Builder로 생성해야한다. AlertDialog.Builder(Context context) 를 호출하여 이용하면 된다. 그리고 다이얼로그를 보여주는데는 Show 와 Create 두가지 방법이 있다.
Create를 이용 할 경우 protected Dialog onCreateDialog(int id) 를 이용하여 생성 될 시 어떤 형태를 보여 주는가를 나타 낼 수 있으며, protected void onPrepareDialog(int id, Dialog dialog) 여기에서 그 내용을 적용 시킬 수 있다.
다음은 간단한 예제 코드이다.
public class ImageViewActivity extends Activity{
Button btns;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btns = (Button)findViewById(R.id.btn1);
btns.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
AlertDialog.Builder alt = new AlertDialog.Builder(ImageViewActivity.this);
alt.setTitle("Title");
alt.setMessage("대화상자 오픈");
alt.setIcon(R.drawable.ic_launcher);
alt.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showDialog(0);
}
});
alt.setNeutralButton("DON'T", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alt.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alt.setCancelable(false);
alt.show();
}
});
}
protected Dialog onCreateDialog(int id){
switch(id){
case 0 :
return new AlertDialog.Builder(ImageViewActivity.this).setTitle("Title").setMessage("Create").setPositiveButton("OK", null).create();
}
return null;
}
protected void onPrepareDialog(int id, Dialog dialog){
super.onPrepareDialog(id, dialog);
switch(id){
case 0 :
dialog.setTitle("TestTitle");
break;
}
}
}
코드를 보면 setPositiveButton,setNeutralButton,setNegativeButton 부분이 보일 것이다. 말 그대로 승인, 중립, 거부의 경우를 나타낸다.
또한 이들의 첫번째 인자는 버튼에 나타내는 텍스트를 의미하며 두번째 인자는 해당 이벤트를 연결 한 것이다.
이 이벤트 내용을 따로 정의하여 클릭 할 때 마다 다이얼로그를 생성하여 여러 작업을 수행 할 수가 있다.
RECENT COMMENT