2010-08-24 3 views
0

Toast.makeText (...)와 비슷한 기능을 만들어야하지만 더 빨리 사라질 필요가 있습니다. 나는 당신이 툴바에서 버튼을 선택할 때 소프트웨어 "Le monde fr"에서 그런 messagebox를 보았다. 다른 아이콘으로 이동하면 매우 빠르게 나타나고 사라집니다. 나는 같은 기능을하기를 원하지만 그렇게하는 법을 알 수는 없다. Messagebox는 모달이 아니어야합니다. 원하는 것은 빠른 툴팁입니다. 툴팁이 나타나서 빨리 사라져야합니다. 어떤 아이디어?ANDROID 아래에 빠른 자동 닫기 메시지 상자를 만드는 방법은 무엇입니까?

+0

: http://groups.google.com/group/android-developers/browse_thread/thread/edf69019754e565b – Pentium10

답변

4

토스트 객체를 생성 기간 :

timer.schedule(task, 100); 
+0

고마워, 나는 이것을 보려고 노력할지도 모른다. – Fabien

1

PopupWindows를 통해 도구 설명을 수행 할 수 있습니다. 나는 당신이 아이콘 그리드를 가지고 있다고 가정하고 시간에 따라 또는 다른 아이콘을 클릭하여 사라지는 도구 팁을 제공하고자합니다 - 내가 틀렸다면 나를 수정하십시오 :

글로벌 mPopupWindow를 생성하고 새로운 한 번씩. 스크롤 리스너에서 시간 또는 코드를 기반으로 해지하는 스레드를 사용할 수 있습니다.

PopupWindow mPopupWindow = null; 

mIconButton.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        if (mPopupWindow != null) { 
         mPopupWindow.dismiss(); 
         mPopupWindow = null; 
        } 

        TextView tv = new TextView(getApplicationContext()); 
        tv.setText(tooltipText); 
        tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 
          0, 0, 0); 
        mPopupWindow = new PopupWindow(tv); 

        mPopupWindow.setWindowLayoutMode(
          ViewGroup.LayoutParams.WRAP_CONTENT, 
          ViewGroup.LayoutParams.WRAP_CONTENT); 

        mPopupWindow.showAsDropDown(v); 

// write threads to disable it based on time as well 

       } 
      }); 
+0

매우 intersting, 난 그것에 대해 몰랐어요 ! – Fabien

0

토스트 알림 기간을 변경해 보셨습니까?

Toast.makeText(context, "My message", Toast.LENGTH_SHORT).show(); 

I 알림이 표시하고 짧은 기간을 사용자가 확인하고 토스트를 판독하는 데 걸리는 최소 시간에 최적화 된 임의 이보다 빨리 사라지는 데주의 할 것이다.

TimerTask task = new TimerTask() { 

    @Override 
    public void run() { 
    // make sure to cancel the Toast in UI thread 
    runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
     toast.cancel(); 
     } 
    }); 
    } 
}; 

실행 취소 작업을 한 후 지정된 :

Timer timer = new Timer(); 

Toast 객체를 취소 작업을 만듭니다

final Toast toast = Toast.makeText(this, "message", Toast.LENGTH_SHORT); 

는 Timer 객체를 만듭니다

+0

나는 시도했지만 갤러리 위젯에서 툴바를 만들었습니다. 도구 모음을 스크롤하여 매우 짧은 툴팁을 표시하고자했습니다. 표준 토스트 길이 LENGTH_SHORT이 너무 깁니다. 마지막 이미지/버튼으로 빨리 스크롤 할 때 도구 모음에있는 이전 이미지의 오래된 토스트 텍스트가 사라질 때까지 많은 시간이 걸릴 수 있습니다. – Fabien

0

이렇게하면됩니다. 텍스트 뷰 (R.id.text)가있는 사용자 정의 토스트를 만듭니다. CountDownTimer 클래스에서 확장되는 클래스를 사용하여 축배를 표시 할 시간을 제어합니다.

예 : MyCount counter = new MyCount (5000,1000);

은 5 초 동안 축배를 보여줍니다. 원하는 결과를 얻으려면 값을 낮추십시오.

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate (R.layout.toastxml, (ViewGroup) findViewById (R.id.toast_layout_root)); 토스터 = 새로운 토스트 (this); toast.setView (layout);

TextView text = (TextView) layout.findViewById (R.id.text); text.setText ("안녕하세요! 맞춤 토스트입니다!");

MyCount 카운터 = 새 MyCount (5000,1000); 카운터.스타트();

클래스 반 환이 CountDownTimer를 확장 {이 당신을 도울 수

public MyCount(long millisInFuture, long countDownInterval) { 
     super(millisInFuture, countDownInterval); 
    } 
    @Override 
    public void onFinish() { 
     toast.cancel(); 
    } 
     @Override 
     public void onTick(long millisUntilFinished) { 
      toast.show(); 
     } 
    } 
+0

도 흥미 롭습니다! – Fabien