如何在Android中显示Toast ?

我有一个滑块,可以拉上来,然后它会显示一个地图。我可以上下移动滑块来隐藏或显示地图。当地图在前面时,我可以处理地图上的触摸事件。每次我触摸,一个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();

在新的TestTask(this)中,这是对MapOverlay的引用,而不是MapActivity,所以这就是问题所在。

1191931 次浏览

为了在你的应用程序中显示烤面包,尝试这样做:

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长时间显示视图或文本通知 时间。< / p >

int LENGTH_SHORT显示短时间的视图或文本通知 时间。< / p >

定制你的吐司

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();

你可以自定义你的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();

或General way:

Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();

在Android中祝酒

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();

(LENGTH_SHORT和LENGTH_LONG作为布尔标志-这意味着你不能发送吐司计时器毫秒,但你需要使用这两个选项中的任何一个)

要显示Toast,使用以下代码:

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);


toast.setDuration(Toast.LENGTH_LONG);


toast.show();

使用baseadapter扩展活动使用了这个

Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();

或者你正在使用activity或mainactivity

Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();

语法

Toast.makeText(context, text, duration);

参数值

上下文

getApplicationContext() -返回应用程序中运行的所有活动的上下文。

getBaseContext() -如果你想从应用程序中的另一个上下文访问上下文,你可以访问。

getContext() -只返回当前正在运行的活动的上下文视图。

文本

text -返回"STRING",如果不是字符串,可以使用类型转换。

 (string)num   // type caste

持续时间

Toast.LENGTH_SHORT -吐司延迟2000毫秒预定义

Toast.LENGTH_LONG -吐司延迟3500毫秒预定义

milisecond -吐司延迟用户定义的毫秒(例如。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();

如果是碎片,

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).show();
 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**

我在这里偶然看到了这些答案,并被这样一个事实所吸引,即似乎有人四处打听,认为需要一个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(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

而不是使用"app.getBaseContext()"。

你可以尝试使用"getApplicationContext ()"或"getContext ()"。

如果你的代码处于活动状态,那么你应该使用" activity - this"中的"this" .
如果你的代码是分段的,那么你应该使用"getActivity() "" < / p >

简单的方法!(要在主活动中显示,请将第一个参数替换为其他活动)

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();
}
});
}
//....
}

你也可以把showToast方法放在你的Application类中,并从任何地方显示toast。

如果你想在你的活动中写一段简单的祝酒词: Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show(); < / p >

1.在Toast中显示TextView:——

< p > TextView tv = new TextView(this); tv.setText("Hello!"); tv.setTextSize(30); tv.setTextColor(Color.RED); tv.setBackgroundColor(Color.YELLOW); < / p >

2.显示图像为吐司:-

< p > 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(); < / p >

3.显示布局为吐司:——

< p > 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(); < / p >

**如果你想在Async中写toast,那么: private Activity activity; private android.content.Context context; this.activity = activity; this.context = context; Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show(); < / p >

简单的方法

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();
}
}

并通过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_btn_pushed),Toast.LENGTH_LONG).show();

,strings.xml:

<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>

开始的方式

Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();

内部片段(onCreateView)

Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();

类内部(onCreate)

Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();

延伸功能加上一些高岭糖

fun Context.showToast(string: String){
Toast.makeText(
this, string,
Toast.LENGTH_SHORT
).show()
}

用法:

< p >从活动: showToast("toast) < / p > < p >从片段: requiredContext().showToast("toast) < / p >