0
public class DetalhesGrupoPerguntas extends Fragment implements View.OnClickListener,   AdapterView.OnItemSelectedListener {

 private void trocarPergunta(boolean proxima) throws IOException {
    Log.e(TAG, "proxima pergunta");
    if(lst != null){

        //primeiro ele salva a resposta atual.
        //AppUtils.salvarRespostaPerguntaAtual(getActivity());

        // TODO @fix: resolver como trocar para o próximo item da lista.
        // agora ele seleciona o adapter e muda o item selecionado.
        if(adapter == null )
            adapter = (ListaPerguntasAdapter) lst.getAdapter();

        if(proxima){
            int index = adapter.getCurrentPosition();
            if(index < adapter.getCount()){
                index += 1;
                adapter.getView(index, null, null).performClick();
                Toast.makeText(context, "Você acabou de responder a última pergunta deste Grupo de Perguntas", Toast.LENGTH_SHORT).show();
            }

        }else{
            int index = adapter.getCurrentPosition();
            if(index > 0){
                index -= 1;
                adapter.getView(index, null, null).performClick();
            }else {
                Toast.makeText(context, "Você na primeira pergunta deste Grupo de Perguntas", Toast.LENGTH_SHORT).show();
            }

        }
    }

...

在我的 CustomAdapter 上方。

public class ListaPerguntasAdapter extends BaseAdapter {

……

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

 /**
     * Seta o click no item da lista e ativa o painel
     * de informações envia o id do produtor e da propriedade.
     */
    v.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ViewHolder vh = new ViewHolder();
            vh = (ViewHolder) v.getTag();

            currentPosition = i2;
            Log.e(TAG, "Item clicado é: "+String.valueOf(i2));

            if (firstTimeStartup) {// first time  highlight first row
                currentSelectedView = v;
            }

            firstTimeStartup = false;
            if (currentSelectedView != null && currentSelectedView != v) {
                unhighlightCurrentRow(currentSelectedView);
            }

            currentSelectedView = v;
            highlightCurrentRow(currentSelectedView);


            abrirListaRespostas(context, vh, vh.pergunta_id);

        }
    });

当我执行单击时,我的 ListView 没有使用来自我的适配器的 onClickListener。

4

1 回答 1

0

在适配器中使用 onitemClicklistener 代替 onclicklistener。onitemclicklistenert 将处理适配器每个项目上的所有点击事件。

于 2013-09-18T15:29:09.340 回答