2013-01-08 2 views
0

Я использую ImageView в своем примере. Я установил изображения как фон изображения в xml. Теперь я хочу изменить этот фон изображения Imageview во время выполнения.Android: не удалось изменить ImageView во время выполнения

это мой код Java.

changeImage() 

     { 
     ImageView imgview=(ImageView)findViewById(R.id.imageView1); 
     imgview.setImageResource(R.drawable.headerhindi); 
     } 

Я называю этот метод из OnCreate(). В первый раз мой метод работает нормально. но когда я снова перенаправляю свою активность onCreate(), используя startActivity (myActivityIntent); этот метод не работает должным образом, изображения не изменяются в соответствии с этим методом. По умолчанию отображаются изображения, установленные в xml.

Пожалуйста, помогите мне найти решение. Спасибо заранее.

ответ

1

Попробуйте перевести звонок на changeImage() на номер onResume().

Я не проверял, но у меня есть ощущение, что то, что происходит в том, что, когда вы звоните startActivity() начать деятельность вновь, деятельность еще не была разрушена так onCreate() не вызывается снова, как в жизненном цикле деятельности:

enter image description herehttp://developer.android.com/images/activity_lifecycle.png. Тем не менее.

+1

Большое вам спасибо. @shanet. Меня устраивает... –

1

Как вам перенаправить на вашу деятельность onCreate?

Если ваша деятельность уже работает, оно пропускает onCreate и переходит непосредственно в исходное состояние Started.
Возможно, вы захотите переместить changeImage() в метод onStart(), который вызывается при создании и возобновлении.

enter image description here

Вы можете увидеть полные объяснения здесь: Managing the Activity Lifecycle

※ Основное различие для вас между onStart() и onResume() бы, что onStart() вызывается перед тем, деятельность становится видимым, а onResume() вызывается после.

+0

спасибо Mr. oldergod ... –

Смежные вопросы