안녕하세요
책을 보고 alert Dialog 를 만들고 있는데
버튼 클릭시 다이얼로그 창이 안떠서 질문드립니다.
버튼에 클릭리스너 달구 클릭이 되는것까지 system 아웃으로 확인했는데
다이얼로그가 안뜨네요
문제가
return new AlertDialog.Builder(this) 의 this가 아닌가 추측하는데
정확히 모르겠습니다.
답변 부탁드립니다.^^
소스
----------------------버튼 부분----------------------------
private void getList(Cursor cur){
setContentView(R.layout.view_friend_list);
bt = (Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DIALOG_TWO_BUTTON);
System.out.println("clicked");
}
});
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_multiple_choice,
cur,
new String[] { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER },
new int[] { android.R.id.text1, android.R.id.text2 });
// 리스트를 main view 와 연결한다.
list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
----------------------------------------------------------------
public Dialog onCreateDialong(int id)
{
switch (id){
case DIALOG_TWO_BUTTON :
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("삭제")
.setNegativeButton("확인",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
showDialog(DIALOG_TWO_BUTTON);
contacts = ContactsContract.Data.CONTENT_URI;
// TODO Auto-generated method stub
int listCount = list.getCount();
System.out.println(listCount);
for(int i = 0 ; i< listCount ; i++){
if(list.isItemChecked(i))
{
System.out.println(i);
cursor.moveToPosition(i);
String id;
int idColumn = cursor.getColumnIndex(ContactsContract.Data._ID);
System.out.println("idcolumn is "+ idColumn);
id = cursor.getString(idColumn);
System.out.println("id is "+ id);
getContentResolver().delete(ContactsContract.Data.CONTENT_URI,"_id ="+id, null);
}
}
}
})
.setNegativeButton("취소",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.create();
}
return null;
}
}
그리고 받을값이 하나 일때는 케이스문 사용안해도 됩니다
케이스문도 DIALOG_TWO_BUTTON : 아니라 R.id.button1:
이와 같은 형식으로 사용하는 거에요




test.java 파일인경우
AlertDialog.Builder bld = new AlertDialog.Builder(test.this);
bld.setTitle("알립니다.");
bld.setMessage(R.drawable.icon);
bld.show();
이것을 묻는게 맞습니까?