Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中显示Toast?_Android_Android Mapview_Android Asynctask_Toast - Fatal编程技术网

如何在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();
在new
TestTask(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();