0
私はシンプルなint []で型付きの配列を使っていろいろ試しましたが、型付きの配列は2130837586というリソースIDを与えています。私はgetDrawable
を使用しようとした場合、それは、これを与える:私はdrawable配列のためにtypedarrayを実装しようとしています
[email protected]
私はlogcatでこれらをチェックします。
編集 - ids.getIndexCount()もゼロです。
これは私のコードです。これは私の文字列ここで
<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>
ある
GridView gridView = (GridView) findViewById(R.id.grid);
gridView.setAdapter(new ImageAdapter(this, getResources().obtainTypedArray((R.array.image_ids))));
助けてくださいことは
imgIcon.setImageResource(IDS [位置])このコードを交換して、私の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;
}
}
ImageAdapterコードを共有できますか? –
@SuryaPrakashKushawah私の質問が更新されました。 –
ids配列数がゼロの場合、問題はリソースから配列をロードすることです... – Nanoc