Android geliştirme için bir noob var ve bir görünümü geçersiz kılan sorun yaşıyorum. this eğitimini kullanıyorum ve uygulayan hiçbir sorunum yok. Ancak, görünümün arka planını değiştirdiğimde, hala önceki arka plan ayarlanmış gibi yanıt verir. Başka bir deyişle, maskeyi değiştirdim ama "touchview" sınıfım yeni maskeyi görmüyor. Görünümü güncelleştirmek için geçersizlik kullanma şansım olmadı ve maskenin aslında arka plan olarak sıfırlandığını doğruladım. Herhangi bir yardım büyük takdir edilecektir.Özel Görünüm Neden Geçersiz Olmuyor?
MY KOD
@Override
public boolean onMenuItemClick(com.actionbarsherlock.view.MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId())
{
case 1: // id from the xml file
if(isMale){
isMale=false;
item.setIcon(R.drawable.male_icon);
imageViewOriginal.setImageResource(R.drawable.woman_front);
imageViewFlip.setImageResource(R.drawable.woman_back);
if(isFrontView){
myMask.setBackgroundResource(R.drawable.woman_front_mask); //Mask changed here
}else{
myMask.setBackgroundResource(R.drawable.woman_back_mask); //Mask changed here
}
}else{
isMale=true;
item.setIcon(R.drawable.female_icon);
imageViewOriginal.setImageResource(R.drawable.man_front);
imageViewFlip.setImageResource(R.drawable.man_back);
if(isFrontView){
myMask.setBackgroundResource(R.drawable.man_front_mask); //Mask changed here
}else{
myMask.setBackgroundResource(R.drawable.man_back_mask); //Mask changed here
}
}
touchView.invalidate();
infoView.invalidate();
myMask.invalidate(); //Mask View Invalidated here
return true; // we handled the click, dont pass it up the chain
case 2: // id from the xml file
if(isFrontView){
isFrontView=false;
if(isMale){
myMask.setBackgroundResource(R.drawable.man_back_mask); //Mask changed here
}else{
myMask.setBackgroundResource(R.drawable.woman_back_mask); //Mask changed here
}
}else{
isFrontView=true;
if(isMale){
myMask.setBackgroundResource(R.drawable.man_front_mask); //Mask changed here
}else{
myMask.setBackgroundResource(R.drawable.woman_front_mask); //Mask changed here
}
}
FlipAnimator animator = new FlipAnimator(imageViewOriginal, imageViewFlip,
imageViewFlip.getWidth()/2, imageViewFlip.getHeight()/2);
if (imageViewOriginal.getVisibility() == View.GONE) {
animator.reverse();
}
flipLayout.startAnimation(animator);
touchView.invalidate();
infoView.invalidate();
myMask.invalidate(); //Mask View Invalidated here
return true;
}
return false;
}
Neden durum bildirisinde R.id.itemId'yi kullanmıyorsunuz? Daha basittir. Kodunuzun çalıştırıldığından emin misiniz? ve bağlantı kırıldı, lütfen kodunuzu buraya gönderin. – VinceStyling
Action Bar Sherlock, int ids ile menü öğeleri oluşturmamı sağlıyor. Yukarıdaki bağlantı ve kod çalıştırılır. –