android开发分享如何在Android中显示Toast?

我有一个滑块,可以拉起来,然后显示一张地图。 我可以上下移动滑块来隐藏或显示地图。 当地图在前面时,我可以在该地图上处理触摸事件。 每当我触摸,一个AsyncTask被启动,它下载一些数据,并使一个Toast显示数据。 尽pipe我在触摸事件上启动任务,但是没有显示出烤面包,直到我closures滑块。 当滑块closures,地图不再显示时, 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 ,所以这就是问题所在。

    为了在应用程序中显示Toast ,请尝试以下操作:

     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,你可以使用types转换。

      (string)num // type caste 

    持续时间

    Toast.LENGTH_SHORT – 吐司延迟2000毫秒预定义

    Toast.LENGTH_LONG – Toast延迟3500毫秒预定义

    milisecond – Toast延迟用户定义的毫秒(例如4000)


    Example.1

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

    Example.2

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

    你可以自定义你的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消息

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

    我已经尝试了几次敬酒,对于那些敬酒给他们错误尝试的人

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

    在Android上敬酒

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

    要么

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

    (LENGTH_SHORT和LENGTH_LONG充当布尔标志 – 这意味着你不能发送吐司计时器到毫秒,但你需要使用这两个选项中的任何一个)

    我在这里碰到了答案,被一个事实所吸引,这个事实似乎有人在瞎猜,相信活动环境是必需的。 不是这种情况。 但是,Toast是从主事件或UI线程发布的要求。 所以,让它在一个活动环境之外工作是有点棘手的。 这里是一个可以在系统服务中工作的例子,或者是任何最终从Contextinheritance的潜在类。

     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,请使用以下代码:

    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.makeText(app.getBaseContext(),String)data.result,Toast.LENGTH_SHORT).show(); 

    而不是使用“app.getBaseContext()”。

    您可以尝试使用“ getApplicationContext() ”或“ getContext() ”。

    如果你的代码处于活动状态,那么你应该使用“Activty.this”的“this”。
    如果你的代码片段,那么你应该去“getActivity()”

    最简单的方法! (要显示在您的主要活动中,请replace其他活动的第一个参数)

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

      以上就是android开发分享如何在Android中显示Toast?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/517010.html

      (0)
      上一篇 2020年12月4日
      下一篇 2020年12月4日

      精彩推荐