Как получить доступ к виду, который не запущен?

Поэтому я использовал этот урок для создания собственного тоста, который будет отображать изображение.

Теперь я хочу передать ресурс изображения и сказать моему методу тоста, чтобы он отобразил это изображение.

Итак, я получил это:

 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); 
Другие вопросы по тегам