안드로이드 개발 질문/답변
(글 수 45,052)
타이머 함수를 사용하여 리스트를 일정시간마다 갱신되도록했는데
타이머는 정상적으로 동작하는데 화면에 리스트가 보여지지가 않네요..
public class MainActivity extends Activity {
ArrayList<String> list;
ArrayAdapter<String> adapter;
ListView listView;
TimerTask myTask = new TimerTask(){
@Override
public void run()
{
Log.i("test", "timer");
list.clear();//리스트 초기화
query2();//DB에서 데이터를 가져와 list.add로 추가합니다
adapter.notifyDataSetChanged();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.list);
list = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
//타이머 설정
Timer timer = new Timer();
timer.schedule( myTask, 1000, 1000 );
}
해결을 했는데 리스트가 자꾸 맨앞으로 이동하네요...
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
list.clear();
query2();
listView.setAdapter(adapter);
}
};
TimerTask myTask = new TimerTask(){
@Override
public void run()
{
Log.i("test", "timer");
Message msg = handler.obtainMessage();
handler.sendMessage(msg);
}
};