我有一个滑块,可以拉上来,然后它会显示一个地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理地图上的触摸事件。每次我触摸,一个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.makeText(getActivity(), (String)data.result,
Toast.LENGTH_LONG).show();
另一个例子:
Toast.makeText(getActivity(), "This is my Toast message!",
Toast.LENGTH_LONG).show();
我们可以为duration定义两个常量:
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();
为了在安卓系统中举杯,
import android.widget.Toast;
Toast.makeText(MainActivity.this, "YOUR MESSAGE", Toast.LENGTH_SHORT).show();
or
Toast.makeText(MainActivity.this, "YOUR MESSAGE", Toast.LENGTH_LONG).show();
(LENGTH_SHORT和LENGTH_LONG作为布尔标志-这意味着你不能发送吐司计时器毫秒,但你需要使用这两个选项中的任何一个)
语法
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();
有两种方法。
或者使用内置的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();
我在这里偶然看到了这些答案,并被这样一个事实所吸引,即似乎有人四处打听,认为需要一个Activity上下文。事实并非如此。但是,Toast必须从主事件或UI线程中发布。让这个在活动上下文之外工作有点棘手。下面是一个在系统服务或任何最终继承自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。
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();
而不是使用"app.getBaseContext()"。
您可以尝试使用"getApplicationContext()"或"getContext()"。
如果你的代码处于活动状态,那么你应该使用" activity - this"中的"this"。
如果你的代码是分段的,那么你应该使用getActivity()
如果你想在你的活动中写一段简单的祝酒词:
Toast.makeText (getApplicationContext(),“你好”,Toast.LENGTH_SHORT),告诉();
1.在Toast中显示TextView:——
TextView tv =新的TextView(这);
tv.setText(“你好!”);
tv.setTextSize (30);
tv.setTextColor (Color.RED);
tv.setBackgroundColor (Color.YELLOW);
2.显示图像为吐司:-
ImageView iv =新的ImageView(this);
iv.setImageResource (R.drawable.blonde);
吐司=新的吐司(这个);
t.setView (iv);
t.setDuration (Toast.LENGTH_LONG);
t.show ();
3.显示布局为吐司:——
LayoutInflater li = getLayoutInflater();
View View = li. expand (r.b ayout.my_toast_layout,null,false);
吐司=新的吐司(这个);
t.setView(查看);
t.setDuration (Toast.LENGTH_LONG);
t.show ();
**如果你想在Async中写吐司,那么:
私人活动活动;
private android.content.Context
这一点。活动=活动;
这一点。上下文=上下文;
吐司。makeText(context, "Hello", Toast.LENGTH_SHORT).show();
简单的方法
吐司(“你信息”)
OR
面包(R.string.some_message)
只需在BaseActivity中添加两个方法。如果您还没有使用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.makeText (getBaseContext (), getText (R.string.refresh_btn_pushed) Toast.LENGTH_LONG),告诉();
& strings.xml:
<string name=" refresh_btn_pushing ">"Refresh was Clicked…"字符串> < /
必读:Android Toast示例
语法
Toast.makeText(context, text, duration);
您可以使用getApplicationContext()或getActivity()或MainActivity。(如果活动名称是MainActivity)
Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();
or
Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();