我有一个可以拉起的滑块,然后显示一张地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理该地图上的触摸事件。每当我触摸时,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();
在新的TestTask(this)
中,这是对MapOverlay
的引用,而不是对MapActivity
的引用,因此这就是问题所在。
答案 0 :(得分:816)
要在您的应用中显示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();
答案 1 :(得分:76)
使用{/ 1}}使用此
扩展活动baseadapter
或者如果您正在使用活动或Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
mainactivity
答案 2 :(得分:43)
Toast.makeText(context, text, duration);
getApplicationContext()
- 返回在应用程序中运行的所有活动的上下文。
getBaseContext()
- 如果您想从应用程序中的其他上下文访问Context,则可以访问。
getContext()
- 仅返回当前正在运行的活动的上下文视图。
text
- 返回“STRING”,如果不是字符串,则可以使用类型转换。
(string)num // type caste
Toast.LENGTH_SHORT
- 吐司延迟2000毫秒预定义
Toast.LENGTH_LONG
- 吐司延迟3500毫秒预定义
milisecond
- Toast延迟用户定义的毫秒数(例如4000)
的 Example.1 强> 的
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
的 Example.2 强> 的
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
答案 3 :(得分:21)
在Android中祝酒
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();
或
Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();
(LENGTH_SHORT和LENGTH_LONG充当布尔标志 - 这意味着您无法将吐司计时器发送到毫秒,但您需要使用这两个选项中的任何一个)
答案 4 :(得分: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();
或一般方式:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();
答案 5 :(得分:15)
我尝试了几次吐司,并且对于那些他们的吐司给他们错误的人尝试
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
答案 6 :(得分: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();
或通过提供自定义布局文件
制作自定义文件Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();
答案 7 :(得分:9)
我在这里遇到了答案,并且被似乎有人在四处寻找的事实所吸引,他们认为需要一个活动背景。不是这种情况。但是,要求从主事件或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();
}
});
}
}
请注意,我们无需访问Activity
的实例即可使用此功能。请停止提示是这种情况!如果需要Activity
,则方法签名不会要求Context
。
答案 8 :(得分:7)
如果是片段,
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
答案 9 :(得分:7)
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();
而不是使用" app.getBaseContext()"。
您可以尝试使用" getApplicationContext()"或" getContext()"。
如果您的代码处于活动状态,那么您应该使用"这个" " Activty.this"。
如果您的代码是片段,那么您应该选择" getActivity()"
答案 10 :(得分:6)
要显示Toast,请使用以下代码:
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
答案 11 :(得分: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**
答案 12 :(得分:2)
最简单的方法! (要在主要活动中显示,请替换其他活动的第一个参数)
Button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
}
}
答案 13 :(得分:2)
toast("Your Message")
OR
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
答案 14 :(得分:2)
语法
Toast.makeText(context, text, duration);
您可以使用 getApplicationContext()或 getActivity()或 MainActivity。此(如果活动名称为MainActivity)
Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();
或
Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();
答案 15 :(得分:1)
这对我有用:
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
答案 16 :(得分:1)
入门方式
Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();
答案 17 :(得分:1)
内部片段(onCreateView)
Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();
内部类(onCreate)
Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();
答案 18 :(得分:0)
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();
}
});
}
//....
}
您还可以在您的Application类中放置showToast
方法,并在任何地方展示面包。
答案 19 :(得分:0)
如果您想在活动中写一个简单的吐司:
Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
1。在Toast中显示TextView:---
TextView tv = new TextView(this);
tv.setText("Hello!");
tv.setTextSize(30);
tv.setTextColor(Color.RED);
tv.setBackgroundColor(Color.YELLOW);
2。将图像显示为烤面包:-
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.blonde);
Toast t = new Toast(this);
t.setView(iv);
t.setDuration(Toast.LENGTH_LONG);
t.show();
3。将布局显示为Toast:-
LayoutInflater li = getLayoutInflater();
View view = li.inflate(R.layout.my_toast_layout,null,false);
Toast t = new Toast(this);
t.setView(view);
t.setDuration(Toast.LENGTH_LONG);
t.show();
**如果要在异步中编写吐司,请:
private Activity activity;
private android.content.Context context;
this.activity = activity;
this.context = context;
Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();
答案 20 :(得分:0)
这是另一个:
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_btn_pushed),Toast.LENGTH_LONG).show();
&strings.xml
:
<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>