Я накачивание макета в OnCreate(), который уже объявлен в моей деятельности:findViewByID возвращает нуль после установки такого же идентификатора к виду
layout = (RelativeLayout) findViewById(R.id.layout);
Предположит идентификатора объявлен как Int в моя деятельность.
Позже, после некоторого события я добавление ImageView в этот макет
id = (int) Calendar.getInstance().getTimeInMillis();
ImageView imageView = new ImageView(context);
imageView.setImageResource(R.drawable.ic_launcher);
imageView.setId(id);
layout.addView(imageView);
Позже где-то, я хочу, чтобы получить ImageView от ид мы установили ранее:
ImageView imageView = (ImageView) findViewById(id);
if (imageView == null)
Log.e("Test", "imageview is null");
Весь код работает успешно, и Imageview всегда возвращает значение null, напечатанное в журнале.
Примечание: Я не могу сохранить объект изображения, потому что у меня есть много разных видов в реальном проекте. Здесь я описал свою проблему, используя одно изображение. Я сохранил все идентификаторы просмотров, но не могу получить все эти представления, используя findViewById(). Причина, по которой я использовал Calendar.getInstance(). GetTimeInMillis() для генерации идентификатора - это потому, что я хочу уникальный идентификатор каждый раз. Я сохранил все данные макета, включая идентификаторы для последующего использования. Если пользователь снова откроет эту деятельность в любое время, он получит оттуда, где остановился. Поэтому, добавляя любое новое изображение, идентификатор не должен повторяться, который генерируется ранее.
Keypoint: Если я установил дату-время устройства на 2-3 или более дней раньше, тогда он будет работать правильно. Я думаю, что проблема заключается в генерации идентификатора с использованием календаря.
Правильно прочитайте вопрос. Я не могу этого сделать, поскольку я использую множественное представление, а не одно изображение. –
Надеюсь, вы не используете один и тот же идентификатор для всех видов изображений, не так ли? – Rohit5k2
Очевидно нет.И даже если я использую то же самое, почему я получу ** null **? –