2016-04-14 32 views
0

我嘗試了不同的方式,通過簡單的int []然後鍵入數組現在我的類型數組給予資源ID爲2130837586.我如何將它轉換爲R.drawable的形式?如果我試圖用getDrawable它給出了這樣的:我試圖實現類型數組爲drawables數組

[email protected] 

我在logcat中檢查了這些。

Edit-ids.getIndexCount()也爲零。

這是我的代碼。請幫助

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

這是我的字符串

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

這裏是我的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代碼 –

+0

@SuryaPrakashKushawah更新了我的問題。 –

+0

如果你的ids數組數爲零,你的問題是從資源加載數組... – Nanoc

回答

0

替換此代碼

imgIcon.setImageResource(IDS [位置]);