web-dev-qa-db-ja.com

AndroidでToastを表示する方法

私は引き上げることができるスライダーを持っています、そしてそれはそれから地図を示します。スライダーを上下に動かして地図を隠したり表示したりできます。地図が前面に表示されたら、その地図上でタッチイベントを処理できます。触れるたびに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();

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

415
Artjom Zabelin

あなたのアプリケーションで Toast を表示するためには、これを試してください。

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

もう一つの例:

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

Durationには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();
815
Elenasys

baseadapterを使ったアクティビティの拡張はこれを使いました

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

あるいはあなたがアクティビティやmainactivityを使っている場合

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

構文

Toast.makeText(context, text, duration);

パラメータ値

コンテキスト

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

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

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

テキスト

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

 (string)num   // type caste

期間

Toast.LENGTH_SHORT - トースト遅延2000ミリ秒を事前定義

Toast.LENGTH_LONG - 事前定義されたトースト遅延3500ミリ秒

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


例1

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

例2

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

Androidで乾杯する

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

または

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

(LENGTH_SHORTとLENGTH_LONGはブール値のフラグとして機能しています - つまりトーストタイマーをミリ秒に送ることはできませんが、これら2つのオプションのどちらかを使用する必要があります)

21
Dinesh

あなたのトーストをカスタマイズすることができます:

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();
20
Mahesh

私はいくつかのトーストを試してみましたそして彼らのトーストがそれらにエラーを与えている人のために

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

それには2つの方法があります。

作り付けのToastメッセージを使う

//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();
14
Aniket Thakur

私はここで答えに遭遇しました、そして、アクティビティコンテキストが必要であると信じて、誰かがあざけっているように思われるという事実に引き付けられました。これはそうではありません。ただし、Toastがメインイベントまたは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を要求しません。

9
ChrisCM

それがフラグメントなら、

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();
7
sam
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

「app.getBaseContext()」を使用する代わりに。

" getApplicationContext() "や " getContext() "を使ってみることができます。

あなたのコードが活動しているなら、あなたは "Activty.this"の "this"を使うべきです。
あなたのコードが断片化しているなら、あなたは "getActivity()"に行くべきです

7
Yogesh Nandha

Toastを表示するには、次のコードを使用します。

Toast toast = new Toast(getApplicationContext());

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

toast.setDuration(Toast.LENGTH_LONG);

toast.show();
6
eThAn HuNt
 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")

OR

toast(R.string.some_message)

BaseActivityに2つのメソッドを追加するだけです。まだ使用していない場合は、新しい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
2
Khemraj

enter image description here

構文

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();

詳細情報を入手するにはここをクリックしてください

2
Athira Reddy

最も簡単な方法です。 (メインアクティビティに表示するには、他のアクティビティの最初の引数を置き換えます)

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

これは私のために働いた:

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

これは別のものです:

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>

0
Jadeye

あなたの活動の中で簡単な乾杯を作りたいのなら:Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1. Toastで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();

トーストとして3.showingレイアウト: -

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();

0
Deepya

サービスからトーストを見せる

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();
            }
        });
    }
    //....
}

ApplicationクラスにshowToastメソッドを入れて、どこからでも乾杯を見せることができます。

0
Khemraj