所以我使用this教程创建了一个自定义Toast,它将显示一个图像。
现在我要做的是传递图像资源并告诉我的toast方法来显示该图像。
所以我得到了这个:
private void callToast(int image_resource)
{
LayoutInflater inflater = getLayoutInflater();
View v = inflater.inflate(R.layout.mycustomtoast, (ViewGroup) findViewById(R.id.toast_layout));
/*set the image*/
ImageView iv = (ImageView)findViewById(R.id.toast_iv);
iv.setImageResource(image_resource);
Toast t = new Toast(this);
t.setView(v);
t.setGravity(Gravity.CENTER,0,0);
t.show();
}
现在findViewById返回null ...我明白因为它所使用的XML没有被使用?
如何更改自定义Toast图像视图的来源?
答案 0 :(得分:2)
这里您忘了查看参考v
ImageView iv = (ImageView)v.findViewById(R.id.toast_iv);
<强>解决方案强>
Toast t = new Toast(this);
t.setView(v);
ImageView iv = (ImageView)v.findViewById(R.id.toast_iv);
iv.setImageResource(image_resource);
t.setGravity(Gravity.CENTER,0,0);