2016-04-14 12 views
0

Ich versuchte verschiedene Möglichkeiten durch einfache int [] dann Typed array jetzt mein typisiertes Array gibt Ressource ID als 2130837586. Wie konvertiere ich es in Form von R.drawable? Und wenn ich versuchte, getDrawable zu verwenden gibt es dies:Ich versuche, typedarray für drawables Array zu implementieren

[email protected] 

Ich habe diese in logcat.

Bearbeiten - IDS.getIndexCount() ist auch Null.

Dies ist mein Code. Bitte Hilfe

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

dies meine Saite ist

 <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> 

Hier ist meine 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

Können Sie den ImageAdapter-Code teilen –

+0

@SuryaPrakashKushawah Aktualisiert meine Frage. –

+0

Wenn Ihre IDs Array-Zahl Null ist Ihr Problem ist mit dem Laden des Arrays aus Ressourcen ... – Nanoc

Antwort

0

Ersetzen Sie diesen Code

imgIcon.setImageResource (ids [Position]);