2014-09-08 4 views
-1

어댑터와 함께 Picasso를 사용하는 동안이 오류가 발생했습니다. 나는 정제에서 잘 작동하는 동안 휴대폰에서 메모리 부족 오류가 발생하기 때문에 Picasso를 사용합니다.클래스 캐스팅 예외 : RelativeLayout을 com.a.a.ba로 캐스팅 할 수 없습니다.

피카소를 잘못 사용하고 있습니까? 오류가 표시되지 않기 때문입니다.

public class ViewPagerAdapter extends PagerAdapter { 
    // Declare Variables 
    Context context; 
    int[] flag; 
    String[] rank; 
    LayoutInflater inflater; 

    public ViewPagerAdapter(Context context, int[] flag, String[] rank) { 
     this.context = context; 
     this.flag = flag; 
     this.rank = rank; 
    } 

    @Override 
    public int getCount() { 
     return rank.length; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((RelativeLayout) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     ImageView imgflag; 

     inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View itemView = inflater.inflate(R.layout.app3x, container, false); 

     // Locate the ImageView in viewpager_item.xml 
     // imgflag = (ImageView) itemView.findViewById(R.id.items); 

     // Capture position and set to the ImageView 
     // imgflag.setImageResource(flag[position]); 
     Picasso.with(context).load(flag[position]).fit().into((Target) itemView); 
     // Add viewpager_item.xml to ViewPager 
     ((ViewPager) container).addView(itemView); 

     return itemView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     // Remove viewpager_item.xml from ViewPager 
     ((ViewPager) container).removeView((RelativeLayout) object); 
    } 
} 

내 XML :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:background="@color/White"> 

    <ImageView 
     android:id="@+id/items" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentRight="true" 
     android:background="@color/White" 
     android:scaleType="fitXY" /> 

</RelativeLayout> 
+1

포스트에게 로그 캣를 시도? 프로젝트 정리하기 - 클래스 캐스팅 예외는 상대 레이아웃에서 나타나는 이상한 문제입니다. – Razgriz

+1

hare에 로그를 붙여 넣을 수 있습니까? –

+0

나는이 코드에 위의 코드가 있다고 믿는다 : 'Picasso.with (context) .load (flag [position]). fit(). ((target) itemView); 당신은'RelativeLayout'을'Target'으로 캐스팅하고 있습니다. –

답변

0

UPDATE 내가 여기 코드의 널 (null)이 아니어야합니다 대상을 얻고있다

ImageView imgButtons; 
     imgButtons = (ImageView) findViewById(R.id.items); 
     Picasso.with(context).load(flag[position]).fit().into(imgButtons); 
     // Add viewpager_item.xml to ViewPager 
     ((ViewPager) container).addView(imgButtons); 

     return imgButtons; 

을 편집 무엇인가 Picasso의 공무원부터 ,

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); 

flag[]는 이미지에 대한 자원 ID, 코드의 문제를 포함한다고 가정 해 봅시다

Picasso.with(context).load(flag[position]).fit().into((Target) itemView); 

itemViewRelativeLayout 아닌 ImageView 점이다 : bsite, 올바른 구문 중 하나입니다.

이 (변경 주석으로 표시됩니다)

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View itemView = inflater.inflate(R.layout.app3x, container, false); 
    ImageView imgflag = (ImageView) itemView.findViewById(R.id.items); // need this ImageView 

    Picasso.with(context).load(flag[position]).fit().into(imgflag); // use ImageView 

    ((ViewPager) container).addView(itemView); 
    return itemView; 
} 
+0

고마워 지금 작동했습니다 – user3334111

+0

1 분 전에 문제가 발생했습니다. 나는 그 피카소를 생각해. 그게 아니라 그냥 검은 화면을 제공하는 이미지를로드하지 않는 오류가 없습니다. 왜 피카소는 이미지를로드하지 않습니다 – user3334111

+0

항상 그런가? 불행히도, 나는 피카소를 사용하지 않으므로 그 점에 대해 잘 모르겠습니다. 항상 일어난다면 Google이나 여기에서 비슷한 질문을 찾으려고 할 수 있습니다. 꼭해야한다면이 질문에 연결하면서 새로운 질문을하십시오. –