我有點窮,在Java或更好地說OOP的我有一個奇怪的問題,我不知道這是否可能。我有一個類Java奇怪的問題
private ArrayList<?> data;
public A(Activity a, ArrayList<?> mStatus)
{
activity = a;
data = mStatus;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
後來我用
public View getView(int position, View convertView, ViewGroup parent)
{
View vi = convertView;
ViewHolder holder;
if (convertView == null)
{
vi = inflater.inflate(R.layout.custom_gallery, null);
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.text);
holder.image = (ImageView) vi.findViewById(R.id.image);
holder.root = (LinearLayout) vi.findViewById(R.id.root);
vi.setTag(holder);
}
else
holder = (ViewHolder) vi.getTag();
//I used this that solves my problem
if(data.get(position) instanceof GalleryTestParser)
{
GalleryTestParser mParser = (GalleryTestParser)data.get(position);
holder.text.setText(mParser.Name);
holder.image.setTag(mParser.galleryThumbiPad);
holder.root.setTag(mParser);
imageLoader.DisplayImage(mParser.galleryThumbiPad, activity, holder.image);
}
return vi;
}
編輯:在上面,我想如果數據類型GalleryTestParser,或者如果不是做別的一些其他的。
更早我試圖在構造函數中使用ArrayList<GalleryTestParser> mStatus
,但這是類特定的。我想要的是,從arraylist對象不知何故,我必須知道它是什麼類型,以便我鍵入cast列表對象的類型。
這可能嗎?
後整個班級,什麼是'data'的類型? – 2011-03-17 11:41:32
所以你的問題是你不知道哪種類型的對象在你的ArrayList中,但是你想把它轉換成正確的類型? – RoflcoptrException 2011-03-17 11:42:04
@Roflcoptr是的。我希望我可以傳遞任何類型的數組列表,然後我只會將其轉換爲該類型。 – ingsaurabh 2011-03-17 11:45:32