2011-05-25 102 views
1

我已经使用自定义的Adapter创建了图像的GridView。它工作正常,但现在我想要在运行时获取这些图像的ID,以便将它们之下的泡泡对齐。我可以得到行ID,但不是图像的ID。请帮忙。Android - 获取动态创建的GridItem的ID

public class GridAdapter extends BaseAdapter { 
private Context mContext; 
private GridItem[] items; 

public GridAdapter(Context c) { 
    mContext = c; 
    items = GridItem.values(); 
    //inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

public int getCount() { 
    return items.length; 
} 

public GridItem getItem(int position) { 
    return items[position]; 
} 

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

public static class ViewHolder { 
    public ImageView image; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { 
     imageView = new ImageView(mContext); 
     imageView.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.WRAP_CONTENT, GridView.LayoutParams.WRAP_CONTENT)); 
     //imageView.setPadding(10, 10, 10, 10); 
    } else { 
     imageView = (ImageView) convertView; 
    } 
    imageView.setBackgroundResource(items[position].getResourceId()); 
    if(position == 3) { 
     ImageView helpBubble = new ImageView(mContext); 

    } 
    //imageView.setTag(items[position]); 
    return imageView; 
} 

}

UPDATE

它的工作原理!我得到资源ID,但现在我无法在单击的网格项下添加新视图。它出现在顶部

    LayoutInflater inflate = (LayoutInflater) mContext 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       RelativeLayout helpBubble = (RelativeLayout) inflate.inflate(R.layout.bubble, null); 

       TextView helpText = (TextView) helpBubble.findViewById(R.id.bubble_text); 
       helpText 
         .setText("Lorem Epsum Dolor Emit ab asdfj asdflqwe fsadf wqrwqer asdfasdf wfsad asdfasdf rqwerqwrw"); 

       Button moreButton = (Button) helpBubble.findViewById(R.id.bubble_button); 
       moreButton.setText("More Info"); 

       RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
         RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
       lp.addRule(RelativeLayout.BELOW, item.getResourceId()); 

       gridRL.addView(helpBubble, lp); 

回答

0

你getItemId(INT位置) - 方法返回您传递给该方法的值每次。

您应该返回类似items [position] .getResourceId()