development

안드로이드에서 토스트를 표시하는 방법?

big-blog 2020. 2. 18. 22:49
반응형

안드로이드에서 토스트를 표시하는 방법?


끌어 올 수있는 슬라이더가 있고지도를 표시합니다. 슬라이더를 위아래로 움직여지도를 숨기거나 표시 할 수 있습니다. 지도가 맨 앞에 있으면 해당지도에서 터치 이벤트를 처리 할 수 ​​있습니다. 내가 만질 때마다 a AsyncTask가 실행되면 일부 데이터를 다운로드하고 데이터 Toast를 표시합니다. 터치 이벤트에서 작업을 시작하더라도 토스트가 표시되지 않지만 슬라이더를 닫을 때까지는 안됩니다. 슬라이더가 닫히고 맵이 더 이상 표시되지 않으면이 Toast나타납니다.

어떤 아이디어?

잘 작업을 시작

편집하다:

public boolean onTouchEvent(MotionEvent event, MapView mapView){ 
    if (event.getAction() == 1) {
        new TestTask(this).execute();
        return true;            
    }else{
        return false;
    }
 }

그리고 onPostExecute토스트에서

Toast.makeText(app.getBaseContext(),(String)data.result, 
                Toast.LENGTH_SHORT).show();

new TestTask(this)에서는 이것이에 대한 참조 MapOverlay이고 그렇지 않기 MapActivity때문에 이것이 문제였습니다.


응용 프로그램에서 토스트 를 표시하려면 다음을 시도하십시오.

Toast.makeText(getActivity(), (String)data.result, 
   Toast.LENGTH_LONG).show();

또 다른 예:

Toast.makeText(getActivity(), "This is my Toast message!",
   Toast.LENGTH_LONG).show();

기간에 대해 두 가지 상수를 정의 할 수 있습니다.

int LENGTH_LONG 보기 또는 텍스트 알림을 오랫동안 표시합니다.

int LENGTH_SHORT 짧은 시간 동안보기 또는 문자 알림을 표시합니다.

토스트 커스터마이징

LayoutInflater myInflater = LayoutInflater.from(this);
View view = myInflater.inflate(R.layout.your_custom_layout, null);
Toast mytoast = new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();

baseadapter이것을 사용하여 활동 확장

Toast.makeText(getActivity(), 
    "Your Message", Toast.LENGTH_LONG).show();

또는 활동을 사용하는 경우 또는 mainactivity

Toast.makeText(MainActivity.this, 
    "Your Message", Toast.LENGTH_LONG).show();

통사론

Toast.makeText(context, text, duration);

매개 변수 값

문맥

getApplicationContext() -애플리케이션에서 실행중인 모든 활동에 대한 컨텍스트를 리턴합니다.

getBaseContext() -응용 프로그램 내의 다른 컨텍스트에서 컨텍스트에 액세스하려는 경우 액세스 할 수 있습니다.

getContext() -현재 실행중인 활동 만 컨텍스트보기를 리턴합니다.

본문

text -문자열이 아닌 경우 캐스트 유형을 사용할 수 있습니다. "STRING"을 리턴하십시오.

 (string)num   // type caste

지속

Toast.LENGTH_SHORT -토스트 지연 2000ms 사전 정의

Toast.LENGTH_LONG -토스트 지연 3500ms 사전 정의

milisecond -사용자가 정의한 밀리 초 지연 (예 : 4000)


예 1

Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();

예 2

Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();

안드로이드에서 토스트하기

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();

또는

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();

LENGTH_SHORT 및 LENGTH_LONG은 부울 플래그로 작동합니다. 즉, 토스트 타이머를 밀리 초로 보낼 수는 없지만이 두 가지 옵션 중 하나를 사용해야합니다.


당신은 당신의 tost를 사용자 정의 할 수 있습니다 :

LayoutInflater mInflater=LayoutInflater.from(this);

View view=mInflater.inflate(R.layout.your_layout_file,null);
Toast toast=new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();

또는 일반적인 방법 :

Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();

나는 여러 번의 토스트를 시도했으며 토스트가 그들에게 오류를주는 사람들을 위해

Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();

두 가지 방법이 있습니다.

내장 된 토스트 메시지를 사용하십시오

//Toast shown for  short period of time 
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show();

//Toast shown for long period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show();

또는 사용자 정의 레이아웃 파일을 제공하여 사용자 정의 파일을 만듭니다

Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();

나는 여기에 답을 보았고, 활동 컨텍스트가 필요하다고 믿는 누군가가 파고 들었다는 사실에 매료되었습니다. 그렇지 않다. 그러나 메인 이벤트 또는 UI 스레드에서 토스트를 게시해야합니다. 따라서 이것을 활동 컨텍스트 외부에서 작동시키는 것은 약간 까다 롭습니다. 다음은 시스템 서비스 내부에서 작동하거나 궁극적으로에서 상속되는 모든 잠재적 클래스입니다 Context.

public class MyService extends AccessibilityService {

    public void postToastMessage(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());

        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
}

Activity이 작업을 수행 하기 위해 인스턴스에 액세스 할 필요는 없습니다 . 이 경우 제안을 중단하십시오! Activity필요한 경우 메소드 서명은을 호출하지 않습니다 Context.


조각이면

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();

Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

"app.getBaseContext ()"를 사용하는 대신.

" getApplicationContext () "또는 " getContext () "를 사용해보십시오 .

코드가 활동 중이면 "Activty.this"의 "this"를 사용해야합니다.
코드가 조각난 경우 "getActivity ()"로 이동해야합니다.


토스트를 표시하려면 다음 코드를 사용하십시오.

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.show();

 Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT);
 toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position
 toast.setDuration(10000);//you can even use milliseconds to display toast
 toast.show();**//showing the toast is important**

간단한 방법

toast("Your Message")

또는

toast(R.string.some_message)

에 두 가지 방법을 추가하십시오 BaseActivity. 또는 BaseActivity아직 사용하지 않는 경우 새로 작성하십시오 .

public class BaseActivity extends AppCompatActivity {
    public void toast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }

    public void toast(@StringRes int msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
}

로 모든 활동을 확장하십시오 BaseActivity.

public class MainActivity extends BaseActivity

가장 간단한 방법! (주요 활동에 표시하려면 첫 번째 인수를 다른 활동으로 바꾸십시오)

Button.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
    }
}

이것은 나를 위해 일했다 :

Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();

활동에 간단한 토스트를 작성하려면 다음을 수행하십시오. Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1. 토스트에 TextView 표시 : ---

TextView tv = new TextView(this); tv.setText("Hello!"); tv.setTextSize(30); tv.setTextColor(Color.RED); tv.setBackgroundColor(Color.YELLOW);

토스트로 2.Showing 이미지 :-

ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.blonde); Toast t = new Toast(this); t.setView(iv); t.setDuration(Toast.LENGTH_LONG); t.show();

토스트로 레이아웃 표시 :-

LayoutInflater li = getLayoutInflater(); View view = li.inflate(R.layout.my_toast_layout,null,false); Toast t = new Toast(this); t.setView(view); t.setDuration(Toast.LENGTH_LONG); t.show();

** Async에 토스트를 쓰려면 다음을 수행하십시오. private Activity activity; private android.content.Context context; this.activity = activity; this.context = context; Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();


서비스에서 토스트 표시

public class ServiceA extends Service {
    //....
    public void showToast(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
    //....
}

showToastApplication 클래스 메소드를 넣고 어디에서나 토스트를 표시 할 수 있습니다.


여기 또 다른 것이 있습니다.

refreshBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
            }
        });

어디에 Toast:

Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();

& strings.xml:

<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>


여기에 이미지 설명을 입력하십시오

읽어야합니다 : Android Toast Example

통사론

Toast.makeText(context, text, duration);

getApplicationContext () 또는 getActivity () 또는 MainActivity.this를 사용할 수 있습니다 (활동 이름이 MainActivity 인 경우).

Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();

또는

Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();

참고 URL : https://stackoverflow.com/questions/3500197/how-to-display-toast-in-android



도와주세요.
반응형