Como escuto clicar em um evento em um ListView?
Isto é o que eu tenho agora
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
Quando eu faço o seguinte
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
Isso não parece fazer nada ao clicar.
E todos esses códigos vivem dentro de uma classe que estende Activity.
android
listview
click
onitemclicklistener
teepusink
fonte
fonte
Suponha que o objeto ListView seja lv, faça o seguinte:
fonte
lv
não é acessível por dentroonItemClick
. Qual é uma boa maneira de contornar isso?final ListView lv = (ListView) findViewById(R.id.your_list_view);
Object o = ((ListView)arg0).getItemAtPosition(position);
Você precisa configurar a exibição inflada como "Clicável" e "capaz de ouvir eventos de clique" no método getView () da classe do adaptador.
e declare o ouvinte de clique em seu ListActivity da seguinte maneira,
Isso é válido apenas quando você está personalizando o Adaptador estendendo o BaseAdapter.
Consulte ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java para obter mais detalhes
fonte
As duas respostas anteriores às minhas estão corretas - você pode usar
OnItemClickListener
.É bom notar que a diferença entre
OnItemClickListener
eOnItemSelectedListener
, embora pareça sutil, é de fato significativa, pois a seleção e o foco do item estão relacionados ao modo de toque do seuAdapterView
.Por padrão, no modo de toque, não há seleção e foco. Você pode dar uma olhada aqui para mais informações sobre o assunto.
fonte
Esta solução é realmente minimalista e não atrapalha o seu código.
Em seu list_item.xml (NÃO listView!) Atribua o atributo android: onClique assim:
e, em sua atividade, chame este método:
fonte
view
alguns metadados, pode ser a maneira de obter a posição.Você tem que usar
setOnItemClickListener
alguém disse.O código deve ser assim:
fonte
Primeiro, a classe deve implementar o ouvinte de clique:
Em seguida, defina um ouvinte para o ListView
E, finalmente, crie o método clic:
você pode dar uma olhada e baixar o código aqui
fonte
Use a API setOnItemClickListener () em sua atividade. A seguir está a amostra.
fonte
No Kotlin, adicione um ouvinte ao seu listView tão simples quanto java
fonte