1. ホーム
  2. android

[解決済み] AndroidでToastを表示する方法を教えてください。

2022-03-21 22:06:33

質問

スライダーを引き上げると、地図が表示されるようにしています。スライダーを上下に動かして、地図を隠したり見せたりすることができます。地図が前面に出ているとき、その地図のタッチイベントを処理することができます。タッチするたびに AsyncTask が起動され、データをダウンロードして Toast を表示します。タッチイベントでタスクを開始しましたが、スライダーを閉じるまで、トーストは表示されません。スライダーが閉じられ、地図が表示されなくなると、トーストは表示されません。 Toast が表示されます。

何か思い当たることはありますか?

では、タスクを開始します。

EDITです。

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 ということで、これが問題でした。

解決方法は?

を表示させるために 乾杯 をアプリケーションで使用する場合は、次のようにします。

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 ビューまたはテキスト通知を長時間表示します。 の時間です。

イント 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();