Upv*_*ote 433 android toast android-asynctask android-mapview
我有一个可以拉起来的滑块,然后它会显示一张地图.我可以上下移动滑块来隐藏或显示地图.当地图在前面时,我可以处理该地图上的触摸事件.每当我触摸时,a AsyncTask会被启动,它会下载一些数据并生成一个Toast显示数据的数据.虽然我在触摸事件上启动任务但是没有显示吐司,直到我关闭滑块.当滑块关闭并且不再显示地图时,会Toast出现.
有任何想法吗?
好了开始任务
编辑:
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if (event.getAction() == 1) {
new TestTask(this).execute();
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并onPostExecute祝酒
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
在新的TestTask(this),这是一个参考,MapOverlay而不是MapActivity,所以这是问题.
Jor*_*sys 835
要在您的应用程序中显示Toast,请尝试以下操作:
Toast.makeText(getActivity(), (String)data.result,
Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
另一个例子:
Toast.makeText(getActivity(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
我们可以为持续时间定义两个常量:
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();
Run Code Online (Sandbox Code Playgroud)
Cri*_*vez 80
baseadapter使用此扩展活动
Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
或者如果您正在使用活动或 mainactivity
Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
Jay*_*tel 45
Toast.makeText(context, text, duration);
Run Code Online (Sandbox Code Playgroud)
getApplicationContext()- 返回在应用程序中运行的所有活动的上下文.
getBaseContext()- 如果要从应用程序中的其他上下文访问上下文,则可以访问.
getContext()- 仅返回当前运行活动的上下文视图.
text- 返回"STRING",如果不是字符串,则可以使用类型转换.
(string)num // type caste
Run Code Online (Sandbox Code Playgroud)
Toast.LENGTH_SHORT- 预定义的吐司延迟2000毫秒
Toast.LENGTH_LONG- 预定义的吐司延迟3500毫秒
milisecond- Toast延迟用户定义的毫秒数(例如4000)
Example.1
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
Example.2
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
Run Code Online (Sandbox Code Playgroud)
小智 22
在Android中祝酒
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
要么
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
(LENGTH_SHORT和LENGTH_LONG充当布尔标志 - 这意味着您无法将吐司计时器发送到毫秒,但您需要使用这两个选项中的任何一个)
Mah*_*esh 20
你可以自定义你的东西:
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();
Run Code Online (Sandbox Code Playgroud)
或一般方式:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
小智 15
我尝试了几次吐司,并为那些他们的吐司给他们错误的人尝试
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
Ani*_*kur 14
有两种方法可以做到这一点.
使用内置的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();
Run Code Online (Sandbox Code Playgroud)
或通过提供自定义布局文件来制作自定义文件
Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();
Run Code Online (Sandbox Code Playgroud)
我在这里碰到了答案,并被似乎有人捅人的事实所吸引,他们认为需要一个活动背景.不是这种情况.但是,要求从主事件或UI线程发布Toast.因此,让它在活动上下文之外工作有点棘手.这是一个可以在系统服务内部工作的示例,或者最终继承的任何潜在类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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我们不需要访问实例来Activity实现此功能.请停止提示是这种情况!如果Activity需要,方法签名不会要求a Context.
如果它是碎片,
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
而不是使用"app.getBaseContext()".
您可以尝试使用" getApplicationContext() "或" getContext() ".
如果您的代码处于活动状态,那么您应该使用"Activty.this"的"this".
如果您的代码是片段,那么你应该去"getActivity()"
要显示Toast,请使用以下代码:
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
Run Code Online (Sandbox Code Playgroud)
小智 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**
Run Code Online (Sandbox Code Playgroud)
toast("Your Message")或者
toast(R.string.some_message)只需在您的BaseActivity. 或者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();
}
}
Run Code Online (Sandbox Code Playgroud)
并将您的所有活动扩展到BaseActivity.
public class MainActivity extends BaseActivity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1010203 次 |
| 最近记录: |