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

스피너 생성시에 무조건 한번 호출되는 것을 막으려면 ???

0 추천

 

 

Spinner spinner= (Spinner) linear.findViewById(R.id.spinner_sel_dev);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(

context, android.R.layout.simple_spinner_item, TableString);

spinner.setAdapter(adapter);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 

 

spinner.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

LinearLayout linear = (LinearLayout) View.inflate(context,R.layout.dialog, null);

new AlertDialog.Builder(context)

.setTitle("Info")

.setView(linear)

.setPositiveButton("확인", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

 

}

}).show();

}

  @Override

  public void onNothingSelected(AdapterView<?> arg0) {

  // Do nothing

  }

});

 

코드를 위와 같이 작성하였는데, 스피너 선택했을 떄에만 다이얼로그를 띄우고 싶은데

어플 시작하면 바로 다이얼로그가 띄어지더라구요

디폴트로 0포지션에 가 있어서 그런거 같은데

막을 수 있는 쉬운 방법이 있을까용?

열혈키드 (2,040 포인트) 님이 2015년 3월 17일 질문

2개의 답변

+1 추천
 
채택된 답변

다른 방법이 있는지 모르겠는데,

 

전역에

private boolean  isFirstStart = true;

변수 하나 만들고

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

   if(isFirstStart){

       isFirstStart = false;

   }else{

       //코드 작성


   }

}

이렇게 처리하면 되지 않을까 합니다.

이드로이드 (22,930 포인트) 님이 2015년 3월 17일 답변
열혈키드님이 2015년 3월 17일 채택됨
0 추천
불린플레그를 줘서 리스너안에서 첫번째에는 다이얼로그를 띄우지않게 하심 되실것으로
nicehee (73,100 포인트) 님이 2015년 3월 17일 답변
...