我正在使用毕加索通过用户点击按钮将图像保存到磁盘,我想以Toast的形式向用户生成已下载图像的反馈。
为此,我尝试使用以下代码::
在UI线程上运行吐司((AppCompatActivity)context).runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
});
哪个没有运行。图像已下载,并且在我的应用程序库中也可见,但Toast不会显示。有人可以告诉我,我是否真的这样做,还是应该以其他方式完成?
FYI:此代码正在Target对象的onBitmapLoaded()方法中运行,我将传递给Picasso以将Image下载到; '背景'这里的对象是指当前活动的上下文。
任何帮助将不胜感激:)
答案 0 :(得分:1)
在网上进行了大量搜索后,我得到了答案。您需要在主线程而非后台线程上显示吐司。以下代码将完成工作
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
//Display toast here
}
});
答案 1 :(得分:0)
使用具有回调的方法,您可以在其中定义成功和错误的消息。
final ImageView view = new ImageView(this);
Picasso.with(this).load("http://i.imgur.com/DvpvklR.png").into(view, new Callback() {
@Override
public void onSuccess() {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
@Override
public void onError() {
}
});
编辑:添加占位符行