Spinner 리스너가 계속 말썽을 부려서 질문을드립니다.
오래전에 계속 문제가 되던게 아직 해결이 안되어서
onCreate()에서
Spinner를 초기화를 하고
Spinner를 선택하면 값이 바뀐것을 갱신하게 하였습니다.
그런데 이상하게 루프를 도내요
spinnerlist = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,alist);
spinnerlist.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
attention_items.setAdapter(spinnerlist);
spinnerlist.notifyDataSetChanged();
갱신은커녕 계속 무한루프를 도는군여
우선 실시간 Thread를 돌면서 화면에 DATA값을 갱신하게 주었습니다.
문제는 Spinner가 Thread와 연관이 있어서 그런지 루프를 계속 돌고 있습니다.
소스 구현은 대충 아래와 같습니다.
String[] temp = {"TEST1","TEST2",'TEST3"};
private Spinner attention_items = null;
private ArrayAdapter spList = null;
@Override
public void onCreate(Bundle savedInstanceState) {
//종합화면 호출
super.onCreate(savedInstanceState);
setContentView(R.layout.test_1);
attention_items = (Spinner) findViewById(R.id.spin);
String[] alist = {"A","B","C"};
attention_items.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent,View v, int position ,long id){
alist = temp; //새로운 DATA값을 완전 초기화와 갱신함
spList = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,alist);
spList.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
attention_items.setAdapter(spList);
spList.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
spList = new ArrayAdapter(this,android.R.layout.simple_spinner_item,alist);
spList.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
attention_items.setAdapter(spList);
}
@Override
public void onResume() {
super.onResume();
//Thread 구동함
new TestThread().start();
}
주변 코드도 같이 올려 주셔야 판단이 설 듯 합니다.