마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Dialog를 사용할때 ArrayAdapter에서 오류가 납니다.

0 추천

 

안녕하세요.

안드로이드 초보인데 도와줄 사람 없이 혼자 하다보니

안되는 부분이 많네요..

 

 

case R.id.deletebutton:   
    final SparseBooleanArray sb = list.getCheckedItemPositions();
    
    new AlertDialog.Builder(this)
    .setTitle("삭제")
    .setMessage("선택된 " + sb.size() + "개의 항목을 삭제하시겠습니까?")
    .setPositiveButton("네", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int whichButton) {
      if(sb.size() != 0) {
       for (int i = list.getCount() - 1; i >= 0; i--) {
        if (sb.get(i)) {
         warning.remove(i);
        }
       }
       list.clearChoices();
       Adapter.notifyDataSetChanged();
       
       Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, warning);
       list.setAdapter(Adapter);
       list.setChoiceMode(ListView.CHOICE_MODE_NONE);
       
       edbtn.setVisibility(View.VISIBLE);
       dltbtn.setVisibility(View.GONE);   
       adltbtn.setVisibility(View.GONE);
       
      }
     }
    })
    .setNegativeButton("아니요", null)
    .show();    
    
    break;
    

 

오류가 나는 부분의 코드입니다.

버튼을 눌렀을때 dialog가 뜨도록 만드려고 하고 있습니다.

 

 

public class Warning extends Activity {
 ArrayList<String> warning;
 ArrayAdapter<String> Adapter;
 ListView list;
 Random rand = new Random();
 
 Button edbtn;
 Button dltbtn;
 Button adltbtn;

변수는 이런식으로 선언해 뒀구요.

 

오류가 나는 부분은

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, warning);

이 부분입니다.

 

ArrayAdapter의 체크 박스를 없애는 법을 몰라서 다시 새로 생성하는 식으로 코드를 짯는데요.

dialog를 사용하기전에..

PositiveButton onclick의 밖에 있을때는 제대로 작동되었는데

onclick안에서는 오류가 걸리네요.

 

 

어떻게 수정을 해야할지 알려주시면 감사하겠습니다!

 

 

도꼬비 (900 포인트) 님이 2013년 9월 13일 질문

1개의 답변

+1 추천
 
채택된 답변

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, warning);

에서 this를 Warning.this로 바꿔서 해보세요.

아나콘다v (4,670 포인트) 님이 2013년 9월 13일 답변
도꼬비님이 2013년 9월 13일 채택됨
핫! 감사합니다.
역시 context가 잘못된거였네요 ㅠㅠ!
...