안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요?
list가 꽉 찬 상태에서 리스트 추가버튼을 누르면 더이상 추가할수 없다는 toast 를 띄우는데
추가버튼을 계속~~ 누르면 toast 가 계속뜨면서 아주 오랫동안 toast 가 화면에 남아있는 문제를 해결하고싶네요
toast가 1초동안 떠있다면 추가버튼을 5번누르면 5초동안 떠있는데요
그냥 누르는 동안에는 계속 떠있어도 되는데 마지막으로 눌려진지 1초만에 없어지게 하는 방법이 없을까요?
그냥 toast를 죽이는 방법으로 해봤더니 toast가 죽긴 죽는것같은데 그냥 껌뻑 껌뻑 하면서 꺼졌다 켜졌다 하긴하는데
이것도 오랫동안 지속되기는 마찬가지더라구여
방법이 있다면 알려주세요
그럼 수고하세요~
list가 꽉 찬 상태에서 리스트 추가버튼을 누르면 더이상 추가할수 없다는 toast 를 띄우는데
추가버튼을 계속~~ 누르면 toast 가 계속뜨면서 아주 오랫동안 toast 가 화면에 남아있는 문제를 해결하고싶네요
toast가 1초동안 떠있다면 추가버튼을 5번누르면 5초동안 떠있는데요
그냥 누르는 동안에는 계속 떠있어도 되는데 마지막으로 눌려진지 1초만에 없어지게 하는 방법이 없을까요?
그냥 toast를 죽이는 방법으로 해봤더니 toast가 죽긴 죽는것같은데 그냥 껌뻑 껌뻑 하면서 꺼졌다 켜졌다 하긴하는데
이것도 오랫동안 지속되기는 마찬가지더라구여
방법이 있다면 알려주세요
그럼 수고하세요~
2010.07.19 12:53:13
Toast 를 띄우실 때, 매번 새로운 Toast 객체를 생성하는 대신,
Toast 객체는 한 번만 생성하고 해당 객체의 show 메서드만 재호출 해주시면 됩니다. (표시 시간만 업데이트 되거든요.)
제가 Toast 생명 주기에 관해서 간단하게 정리해둔 글이 있는데, 혹시 도움이 되실지 모르겠네요.
http://huewu.blog.me/110085845792
2010.07.19 17:42:41
Toast toast = null;
if(toast == null) {
toast = Toast.makeTest(context, string, duration);
}else{
toast.setText(string);
}
toast.show();
string, context, duration 의 의미는 아시겠지여 ?
2010.07.19 20:37:55
음..혹시나 해서 질문하는겁니다만, 저 위의 toast 멤버 변수는 Instance 변수인게 확실한가요?
제가 개인적으로 테스트 해봤을 때 Toast 를 중복 생성하지 않으면 잘 되는거 같은데;;;; 제가 테스트 한 코드는 아래와 같습니다.
public class TestToast extends Activity {
/** Called when the activity is first created. */
Toast t = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void handleClick(View v){
if(t == null) {
t = Toast.makeText(this, "hello", Toast.LENGTH_SHORT);
}else{
t.setText("hello2");
}
t.show();
}
}//end of class