478

引き上げることができるスライダーがあり、地図が表示されます。スライダーを上下に動かして、地図を表示または非表示にすることができます。マップが前面にある場合、そのマップでタッチイベントを処理できます。タッチするたびに、aAsyncTaskが起動し、データをダウンロードしてToast、データを表示するaを作成します。タッチイベントでタスクを開始しましたが、スライダーを閉じるまでトーストは表示されません。スライダーを閉じて地図が表示されなくなると、が表示され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();

newTestTask(this)では、これはへの参照でMapOverlayあり、への参照ではないためMapActivity、これが問題でした。

4

21 に答える 21

886

アプリケーションでToastを表示するには、次のようにします。

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

もう一つの例:

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

継続時間には 2 つの定数を定義できます。

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();
于 2010-08-17T16:06:57.110 に答える
48

構文

Toast.makeText(context, text, duration);

パラメータ値

環境

getApplicationContext()- アプリケーションで実行されているすべてのアクティビティのコンテキストを返します。

getBaseContext()- アプリケーション内の別のコンテキストから Context にアクセスする場合は、アクセスできます。

getContext()- 現在実行中のアクティビティのみのコンテキスト ビューを返します。

文章

text- "STRING" を返します。文字列でない場合は、型キャストを使用できます。

 (string)num   // type caste

間隔

Toast.LENGTH_SHORT- トースト遅延 2000 ms 事前定義

Toast.LENGTH_LONG - トースト遅延 3500 ms 事前定義

milisecond - トースト遅延ユーザー定義のミリ秒 (例: 4000)


例1

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

例2

Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
于 2014-03-10T08:55:50.170 に答える
21

トストをカスタマイズできます:

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();
于 2012-11-22T13:50:39.203 に答える
15

私はいくつかのトーストを試しましたが、トーストでエラーが発生した人は試してみてください

Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
于 2016-03-31T17:45:49.783 に答える
9

私はここで答えに出くわし、アクティビティコンテキストが必要であると信じて、誰かが突っついているように見えるという事実に惹かれました. これはそうではありません。ただし、トーストがメイン イベントまたは 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.

于 2015-12-10T21:36:39.240 に答える
7

フラグメントなら、

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();
于 2014-12-16T08:25:42.687 に答える
5
 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**
于 2014-12-17T13:07:59.113 に答える
3

ここに別のものがあります:

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>

于 2019-02-23T15:09:59.003 に答える