2016-04-14 20 views
0

için typedarray uygulamaya çalışıyorum Basit int [] sonra Typed dizi aracılığıyla farklı yolları denedim şimdi Typed dizim 2130837586 olarak kaynak kimliği veriyor. Nasıl R.drawable şeklinde dönüştürebilirim? Ben getDrawable kullanmaya çalıştı Ve eğer bu verir: Çizgiler dizisi

[email protected] 

ben LogCat bu kontrol etti.

Düzenleme - ids.getIndexCount() da sıfırdır.

Bu benim kodum. Bu benim dize İşte

 <array name="image_ids"> 
    <item>@drawable/one</item> 
    <item>@drawable/two</item> 
    <item>@drawable/three</item> 
    <item>@drawable/four</item> 
    <item>@drawable/five</item> 
    <item>@drawable/six</item> 
    <item>@drawable/seven</item> 
    <item>@drawable/eight</item> 
    <item>@drawable/nine</item> 
    <item>@drawable/ten</item> 
    <item>@drawable/eleven</item> 
    <item>@drawable/twelve</item> 
</array> 

olduğunu

 GridView gridView = (GridView) findViewById(R.id.grid); 
    gridView.setAdapter(new ImageAdapter(this, getResources().obtainTypedArray((R.array.image_ids)))); 

Lütfen Yardım

imgIcon.setImageResource (kimlikleri [konumu]) bu kodu değiştirin benim ImageAdapter

 public class ImageAdapter extends BaseAdapter { 
private Context mContext; 
TypedArray ids; 

public ImageAdapter(Context con,TypedArray rids){ 
    mContext = con; 
    ids = rids; 
    Log.d("Check this out,",""+ids.getDrawable(0)); 
} 

@Override 
public int getCount() { 
    return ids.getIndexCount(); 
} 

@Override 
public Object getItem(int position) { 
    return ids.getDrawable(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 

    if (convertView == null) { 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(180, 180)); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8); 
    } 
    else 
    { 
     imageView = (ImageView) convertView; 
    } 
    imageView.setBackgroundResource(ids.getResourceId(position,-1)); 

    return imageView; 
} 
} 
+0

ImageAdapter kodunu paylaşın –

+0

@SuryaPrakashKushawah Sorumu güncelledim. –

+0

Eğer ids array sayınız sıfır ise, probleminiz diziyi kaynaklardan yüklemektir ... – Nanoc

cevap

0

olduğu;