如何在Android中显示Toast?
我有一个滑块,可以向上拉,然后它会显示一张地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理地图上的触摸事件。每次我触摸时,都会启动一个如何在Android中显示Toast?,android,android-mapview,android-asynctask,toast,Android,Android Mapview,Android Asynctask,Toast,我有一个滑块,可以向上拉,然后它会显示一张地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理地图上的触摸事件。每次我触摸时,都会启动一个AsyncTask,它会下载一些数据并制作一个显示数据的Toast。虽然我在触摸事件上启动任务,但在关闭滑块之前,不会显示toast。当滑块关闭且地图不再显示时,将显示Toast 有什么想法吗 我们开始这项任务吧 编辑: public boolean onTouchEvent(MotionEvent event, MapView mapView
AsyncTask
,它会下载一些数据并制作一个显示数据的Toast
。虽然我在触摸事件上启动任务,但在关闭滑块之前,不会显示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();
在newTestTask(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();
我们可以为持续时间定义两个常数:
intLENGTH\u LONG长时间显示视图或文本通知
时间的问题
intLENGTH\u SHORT短时间显示视图或文本通知
时间的问题
定制你的吐司
您可以自定义您的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.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();
或
(LENGTH_SHORT和LENGTH_LONG充当布尔标志-这意味着您不能将toast计时器发送到毫秒,但您需要使用这两个选项中的任何一个)要显示toast,请使用以下代码:
Toast Toast=newtoast(getApplicationContext())代码>
使用baseadapter扩展活动使用了此
Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
或者如果您正在使用活动或main活动
Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();
语法
参数值
上下文
getApplicationContext()
-返回应用程序中运行的所有活动的上下文
getBaseContext()
-如果要从应用程序中的另一个上下文访问上下文,可以访问
getContext()
-仅返回当前正在运行的活动的上下文视图
文本
text
-返回“STRING”,如果不是STRING,可以使用类型转换
期间
Toast.LENGTH\u SHORT
-预定义的Toast延迟2000毫秒
Toast.LENGTH\u LONG
-预定义的Toast延迟3500毫秒
毫秒
-Toast延迟用户定义的毫秒(如4000)
示例1
示例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();
如果是碎片
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
我在这里找到了答案,并被这样一个事实所吸引:似乎有人在四处闲逛,认为需要活动上下文。事实并非如此。但是,要求从主事件或UI线程发布Toast。因此,在活动上下文之外实现这一点有点棘手。下面是一个可以在系统服务内部工作的示例,或者任何最终从上下文继承的潜在类
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();
}
});
}
}
请注意,我们不需要访问活动的实例
,就可以工作。请不要再这样说了!如果需要活动
,则方法签名不会调用上下文
,我已经尝试了几个吐司,对于那些吐司给他们错误提示的人,请尝试
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();
}
});
}
}
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
而不是使用“app.getBaseContext()”
您可以尝试使用“getApplicationContext()”或“getContext()”
如果代码处于活动中,则应使用“activity.this”中的“this”。
如果您的代码是片段,那么您应该选择“getActivity()”最简单的方法!(若要在主活动中显示,请替换其他活动的第一个参数)
这对我很有用:
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
敬酒
您还可以在应用程序类中放置showtoos
方法,并从任何位置显示toast。如果您想在活动中编写一个简单的toast:
Toast.makeText(getApplicationContext(),“Hello”,Toast.LENGTH\u SHORT.show()代码>
1.在Toast中显示TextView:---
TextView电视=新的TextView(本)代码>
tv.setText(“你好!”)代码>
tv.setTextSize(30)代码>
tv.setTextColor(Color.RED)代码>
tv.setBackgroundColor(Color.YELLOW)代码>
2.将图像显示为土司:--
ImageView iv=新的ImageView(本)代码>
iv.setImageResource(R.drawable.blonde)代码>
Toast t=新的Toast(这个)代码>
t.setView(iv)代码>
t.setDuration(Toast.LENGTH\u LONG)代码>
t.show()代码>
3.将布局显示为土司:--
LayoutInflater li=getLayoutInflater()代码>
View-View=li.inflate(R.layout.my\u toast\u layout,null,false)代码>
Toast t=新的Toast(这个)代码>
t.setView(视图)代码>
t.setDuration(Toast.LENGTH\u LONG)代码>
t.show()代码>
**如果要在异步模式中编写toast,请执行以下操作:
私人活动代码>
private android.content.Context代码>
this.activity=activity代码>
this.context=context代码>
Toast.makeText(上下文“Hello”,Toast.LENGTH_SHORT).show()代码>简单方法
toast(“你的留言”)
或
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();
}
}
并通过BaseActivity
扩展您的所有活动
public class MainActivity extends BaseActivity
还有一个:
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\u btn\u push)、Toast.LENGTH\u LONG.show()代码>
&strings.xml
:
“已单击刷新…”
语法
Toast.makeText(context, text, duration);
你可以使用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();
}
});
}
}
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();
Button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
}
}
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
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();
}
});
}
//....
}
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();
}
}
public class MainActivity extends BaseActivity
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.makeText(context, text, duration);
Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();
Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();