Listener para clique em lista não funciona

  • Respostas:1
  • AbertoNão stickySem resposta
  • Posts no fórum: 1

1/nov/2015 18:10:01 via Web

Boa tarde a todos.

Estou com um problema que acho que a solução seja bem simples, mas não consegui fazê-la e tampouco encontrei em muitos fóruns de desenvolvimento android na internet.

O problema consiste em uma lista de notas não serem clicáveis, ou melhor, o setOnItemClickListener não surte efeito. Já tentei de várias formas, mas nunca a aplicação responde ao clique em um item da lista. Antes disso, tinha tentado com um Adapter para um simples List de Strings, e funcionou, mas agora que criei um adapter customizado para meu objeto, o clique não funciona. Tentei das duas seguintes formas:

 ListView lv = getListView();
    lv.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> av, View view, int position,
                long _id) {
            // TODO Auto-generated method stub
            HandleEvents.emiteToastLong(getApplicationContext(), position
                    + " clicked");
        }

    });

e

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.centralizador = Centralizador.getInstance(getApplicationContext());
    List<Nota> notas = this.centralizador.getNotas();

    AdapterNotas adapter = new AdapterNotas(this, notas);
    setListAdapter(adapter);
}

@Override
protected void onListItemClick(ListView lv, View view, int position,
        long _id) {
    Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
            Toast.LENGTH_SHORT).show();

}

Enfim, de nenhuma das duas formas a aplicação respondeu ao clique.
Por favor, ajudem-me, estou há dois dias rpocurando por uma solução.

Desde já, muito obrigado.

— alterado em 1/nov/2015 18:25:01

  • Posts no fórum: 2

6/dez/2015 21:16:28 via Web

Tenho um código do listview, dá uma olhada e ver se funciona..

//Codigo do List View
ListView lista = (ListView) findViewById(R.id.lvInfor);

    final ArrayList<String> nomes = preenchedados();

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, nomes);
    lista.setAdapter(arrayAdapter);

    //Ação do click na lista
    lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //Ação do clique no item da lista
            Toast.makeText(getApplicationContext(), "Foi selecionado o "+nomes.get(position).toString(), Toast.LENGTH_SHORT).show();
        }
    });

   }

//Itens da lista
private ArrayList<String> preenchedados() {
    ArrayList<String> dados = new ArrayList<String>();

        dados.add("Item 1");
        dados.add("Item 2");
        dados.add("Item 3");
        dados.add("Item 4");
        dados.add("Item 5");
        dados.add("Item 6");
        dados.add("Item 7");
        dados.add("Item 8");
        dados.add("Item 9");
        dados.add("Item 10");
        return dados;
    }

//Fim da lista

Espero ter ajudado, vllw.