Android получает данные от курсора при нажатии на макет? - PullRequest
0 голосов
/ 04 октября 2011

У меня есть макет строки списка с текстом и макет, который должен эмулировать кнопку.Проблема, с которой я сталкиваюсь, заключается в том, что я всегда буду получать последние данные в курсоре, то есть, если я щелкну макет в первой строке, мне нужно получить идентификатор GRP 1 и имя GRP ОДИН, но я получу идентификатор GRP 3, имя GRP ТРИнезависимо от того, какой макет я нажимаю в списке.Какой способ это исправить?Мой код:

В методе getView

ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            holder.text2 = (TextView) vi.findViewById(R.id.text2);
            holder.layout1 = (LinearLayout)vi.findViewById(R.id.info);
            vi.setTag(holder);
        } else {
            holder = (ViewHolder) vi.getTag();
        }

        String grpCount = c.getString(c
                .getColumnIndex(TestDbAdapter.KEY_GRP_COUNT));

        holder.text2.setText("Channels: " + grpCount);

        holder.layout1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println(c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_NAME)));
                System.out.println(c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_ID)));
            }
        });

        return vi;

1 Ответ

1 голос
/ 04 октября 2011

Просто проверьте, я думаю, это должно быть исправлено следующим образом:

 String grpCount = c.getString(c
                .getColumnIndex(TestDbAdapter.KEY_GRP_COUNT));
final String grpName = c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_NAME));
final String grpId = c.getString(c.getColumnIndex(TestDbAdapter.KEY_GRP_ID));

        holder.text2.setText("Channels: " + grpCount);

        holder.layout1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println(grpName);
                System.out.println(grpId);
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...