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();
}
}
}
...
在我的自定义适配器上方。
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);
}
});
当我执行Click时,我的ListView不使用来自我的适配器的onClickListener。
答案 0 :(得分:0)
在适配器内使用onitemClicklistener而不是onclicklistener。 onitemclicklistener将处理适配器每个项目上的所有点击事件。