我有一个滑块,可以拉上来,然后它会显示一个地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理地图上的触摸事件。每次我触摸,一个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消息
//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(context, text, duration);
参数值
上下文
getApplicationContext() -返回应用程序中运行的所有活动的上下文。
getBaseContext() -如果你想从应用程序中的另一个上下文访问Context,你可以访问。
getContext() -仅返回当前正在运行的活动的上下文视图。
text
text -返回"STRING",如果不是字符串,可以使用类型转换。
(string)num // type caste
持续时间
吐司。LENGTH_SHORT -吐司延迟2000毫秒预定义的
吐司。LENGTH_LONG -预定义的烤面包延迟3500毫秒
毫秒-吐司延迟用户定义的毫秒(例如。4000)
Example.1
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
Example.2
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();