Android - Получение идентификатора динамически созданного GridItem - PullRequest
1 голос
/ 25 мая 2011

Я создал GridView изображений с помощью специального адаптера. Это работает нормально, но теперь я хочу получить идентификатор этих изображений во время выполнения, чтобы выровнять пузырь под ними. Я могу получить идентификатор строки, но не идентификатор изображения. Пожалуйста, помогите.

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

Это работает! Я получил идентификатор ресурса, но теперь я не могу добавить новый вид под выбранным элементом сетки. Каждый раз, когда он появляется на вершине

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

1 Ответ

0 голосов
/ 25 мая 2011

Ваш метод getItemId (int position) возвращает значение, которое вы передаете методу.

Вы должны вернуть что-то вроде items [position] .getResourceId ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...