Inserindo Botões nos Itens da ListView

Boa tarde Galera,
sou novato aqui no forum e em programação tbm hehehe,
gostaria de uma ajudinha com um probleminha que estou tendo,
gostaria de coloca um botão dentro de cada item do listView, e quando o botão é clicado, ele exibe uma alerta com uma informação do item, eu implementei um Adapter que estende da classe baseAdapter, meu problema é com os botões dentro do item do listview, eu tentei setOnClickListener dentro do Adapter o problema é que ele cria um novo objeto cada vez que vc percorre a lista, eu não consegui reaproveitar a instância do objeto do determinado item.

tentei outra solução que foi criar a instancia dentro do itemClick do listview, problema é ao clicar no botão e percorrer a lista e clicar novamente com o botão no primeiro ele retorna informação do ultimo penultimo item, eu gostaria de saber se existe uma possibilidade de criar uma instância para cada botão e reaproveitar ela?

Texto meio confuso! mas se o problema é “descobrir” qual botão foi apertado… essa é a solução:

[code] @Override
public View getView(int position, View convertView, ViewGroup parent) {
View convertViewHolder = convertView;

    if ((convertViewHolder == null) && (mContext != null)) {
        LayoutInflater layoutInflater = LayoutInflater.from(mContext);
        convertViewHolder = layoutInflater.inflate(R.layout.row_list, parent, false);
    }

    if ((convertViewHolder != null) && (mList != null)) {

        Button button = (Button) convertViewHolder.findViewById(R.id.button1);
        int item = (Integer) getItem(position);
        button.setText("Item " + item);
        button.setTag(position); //registra tag

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                int position = (Integer) v.getTag();  //recupera tag
                Log.d("debug", "OnClick "+position);
                final String text = "Item " + position;
                AlertDialog dialog = new AlertDialog.Builder(mContext).create();
                dialog.setMessage(text);
                dialog.show();

            }
        });
    }

    return convertViewHolder;
}[/code]

Bom dia Fabricio desculpe me pelo texto que realmente esta confuso, eu estava meio com presa quando digitei, e obrigado pela resposta.
só para melhor esclarecimento, essa linha

Essa linha é uma implementação anônima de OnClickListener certo?

meu problema é exatamente ae, cada vez que o listview é percorrido ele passa criando uma nova instância para cada item digamos que eu tenha percorrido do item 1 ao item 35 e quando eu voltar ao item 1 novamente OnclickListener é instânciado, e a memória do dispositivo ta indo pro espaço com isso…

Nessa linha eu crio um onClickListener para o botão que vai aparecer na Linha do ListView e adiciono uma tag com a posição (position) dele na lista.
Quando o evento onClick dele é chamado, eu recupero a tag e pronto!

bem, sobre ser instanciado varias vezes creio que não vá acontecer desse modo, já que é instanciado o Listener ja dentro da view que vai ser jogada na ListView. (Pelo menos nunca tive esse tipo de problema :stuck_out_tongue: )
Qualquer coisa adiciona um System.gc