Как получить доступ к виду, который не запущен?
Поэтому я использовал этот урок для создания собственного тоста, который будет отображать изображение.
Теперь я хочу передать ресурс изображения и сказать моему методу тоста, чтобы он отобразил это изображение.
Итак, я получил это:
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 возвращает ноль... Я понимаю, потому что XML-файл, который находится под ним, не используется?
Как изменить источник пользовательского изображения тоста?
1 ответ
Решение
Здесь вы забыли посмотреть референс 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);