2014-09-28 3 views
1

Привет Я использую этот код для проверки текущего изображения:android: Как проверить изображение?

public void onToggle(View view){ 
    ImageView imageFav = (ImageView) view; 
    if (imageFav.getResources().equals(R.drawable.fave_icon_1)) { 
     dataSource.addToFavorite(idiom); 
     Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show(); 
     imageFav.setImageResource(R.drawable.fave_icon_2); 

    }else if(imageFav.getResources().equals(R.drawable.fave_icon_2)){ 
     dataSource.deleteFromFavorite(idiom); 
     Toast.makeText(this, "Deleted", Toast.LENGTH_SHORT).show(); 
     imageFav.setImageResource(R.drawable.fave_icon_1); 
    } 
} 

XML:

<ImageView 
     android:id="@+id/img_fav_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="onToggle" 
     android:src="@drawable/fave_icon_1" /> 

Но это не работает. Существует ли общий способ проверки текущего ресурса.
Любая идея?

+1

Использование setTag() и getTag. Вы можете определить начальное значение в XML и изменить его в своем коде. – joao2fast4u

ответ

1

Вы сравниваете ImageView с идентификатором drawable и, конечно же, сравнение даст никогда не верный результат. То, что вы могли бы это иметь два различных изображения просмотра и переключать видимость двух, проверяя идентификатор одного нажатия кнопки на

1
getResources().getDrawable(R.id.icon).toString().equals(R.drawable.icon) 

он работал для меня, я надеюсь, что это может решить вашу проблему

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