안드로이드 개발 질문/답변
(글 수 45,052)
아래는 소스 일부분입니다.
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(this, R.string.searching_message, Toast.LENGTH_SHORT);
mToast.show(); <- show는 분명히 호출했음 ㅡㅡ;;;
MediaData md = new MediaData(getApplicationContext());
md.albumimg = (adapterList.getImgType() == 2) ? true : false;
List<_MetaData> list = md.getMediaInfoEx(filepath, false);
if (mToast != null) mToast.cancel();
빨강 부분이 토스트 호출하고,
무언가 긴 작업이 있고,
끝나면, 토스트 내리기 하려고 합니다.
그런데, 토스트 팝업이 안떠요.
웃긴건, 저 부분이 빨리 여러번 호출되면(ㅡ.ㅡ) 뒷부분것들은 호출이 됩니다.
3번 연속 저 부분이 있는 함수가 호출되면, 2,3번째 호출은 먹히는데,
천천히 (3초 정도 지연 간격) 호출되면 안나와요.
아무리 봐도 알수가 없어요.
참고로 저 함수가 호출되는 부분은
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long id) {
....
}
리스트 목록을 클릭했을때 입니다.
2010.10.18 10:06:48
토스트의 기능을 아직 숙지하지 못하신거 같습니다... 토스느는 단순이 몇초간 메시지를 띄워주는 기능 밖에 못 하구요..
계속 띄우다가 어떤 시점에 죽이겠다... 이런 기능은 없는것으로 알고 있습니다..
이런 경우에는 토스트를 띄우는방식 보다 따로 다이얼로그를 띄우시는것도 좋은것 같습니다.
2010.10.18 18:15:28
이런식의 뛰우는 형식은 좋은방법은 아니지만 안되는이유는
Toast.makeText(this, R.string.searching_message, Toast.LENGTH_SHORT);
Toast.makeText(클래스명.this, R.string.searching_message, Toast.LENGTH_SHORT);
위의 같은상황은 this는 Context객체를 받아야하는데 OnItemClickListener 인터페이스안에서 실행하기때문에 OnItemClickListener를 포인팅하고 있는거라서 안될듯하네요
Toast.makeText(클래스명.this, R.string.searching_message, Toast.LENGTH_SHORT);
위의 같은상황은 this는 Context객체를 받아야하는데 OnItemClickListener 인터페이스안에서 실행하기때문에 OnItemClickListener를 포인팅하고 있는거라서 안될듯하네요