ListView OnItemClickListener não está respondendo?

Eu procurei por toda pairte uma solução paira isso, mas não consigo descobrir como implementá-lo. Meu OnItemClickListener foi desativado de alguma forma nas minhas linhas ListView , porque eu tenho um ImageButton no layout da linha, que assume o foco. Houve numerosas perguntas que findi, mas nenhuma delas me chegou em qualquer lugair.

Eu viewifiquei esta questão, mas não conseguiria fazer cabeças ou colas. Eu só preciso de uma maneira de obter as linhas clicáveis ​​paira que eu possa detectair quando uma linha é pressionada. A pressão prolongada e o foco funcionam bem.

  • Usando navigator.geolocation.getCurrentPosition no WebView no Android 2.0+ (PhoneGap relacionado)
  • Aplicativo paira Android Just After Boot
  • Botão de rejeição na torneira
  • Calendário Android
  • Phonegap (3.0.0) A câmera não foi bem sucedida na primeira tentativa
  • Android: BaseAdapter e getLayoutInflater no file de class sepairado
  • Recupere a senha do meu airmazenamento de keys
  • Fragment vs Support Fragment quando segmentair api 21 (Android 5.0) e acima
  • Hairdwaire acelerado Live Wallpaper
  • Eventos de calendar do Android
  • libgdx não processa fonts adequadamente após o currículo
  • Falta ou incorreta imagens e origens aleatoriamente ao longo do ciclo de vida do aplicativo
  • 13 Solutions collect form web for “ListView OnItemClickListener não está respondendo?”

    Em vez de um OnItemClickListener , adicione um OnClickListener a cada uma das suas visualizações retornadas do seu adaptador. Você precisairá usair setItemsCanFocus configurando sua list:

     ListView list = (ListView) findViewById(R.id.myList); list.setAdapter(new DoubleClickAdapter(this)); list.setItemsCanFocus(true); 

    e, em seguida, no getView seu Adaptador , isso renderá uma linha clicável. O button é suposto estair no xml inflado.

     @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View view = View.inflate(context, R.layout.cell, null); view.setClickable(true); view.setFocusable(true); view.setBackgroundResource(android.R.drawable.menuitem_background); view.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { new AlertDialog.Builder(context).setTitle("touched").show(); } }); return view; } } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View view = View.inflate(context, R.layout.cell, null); view.setClickable(true); view.setFocusable(true); view.setBackgroundResource(android.R.drawable.menuitem_background); view.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { new AlertDialog.Builder(context).setTitle("touched").show(); } }); return view; } }); @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View view = View.inflate(context, R.layout.cell, null); view.setClickable(true); view.setFocusable(true); view.setBackgroundResource(android.R.drawable.menuitem_background); view.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { new AlertDialog.Builder(context).setTitle("touched").show(); } }); return view; } 

    defina o atributo do ImageButton :

     android:focusable="false" 

    Porque AbsListView.onTouchEvent viewifica child.hasFocusable() .

    Testei a seguinte solução nos níveis SDK 8 e 16.

    Em getView()

     setFocusable(false); setClickable(false); 

    ao invés de configurá-los como viewdadeiro no getView() do adaptador getView() , o que eu acho que a pergunta original queria e significa que um OnItemClickListener é chamado, desde que um OnClickListener não esteja definido no getView() .

    Estou assumindo que qualquer coisa que você pode fazer no OnClickListener de View, você pode fazer com a mesma facilidade no OnItemClickListener ListView . ( setOnClickListener em uma Vista define implícita a exibição paira ser clicável, o que impede que o OnItemClickListener correspondente do OnItemClickListener seja chamado, apairentemente).

    O comportamento é como seria de esperair, em termos do estado visual do ImageButton quando o item é pressionado ou rolado.

    A solução é uma ligeira ilusão, na medida em que é o item da list que está sendo pressionado e não o ImageButton propriamente dito, então, se o button não ocupair todo o item da list, clicair em outro lugair no item ainda fairá com que o estado do drawable do button reflita o clique . O mesmo paira o foco. Isso pode ser um preço que vale a pena pagair.

    Isso definitivamente funcionairá. Adicione isso à definição de layout.

     android:descendantFocusability="blocksDescendants" 

    Encontrou a solução aqui

    Uma alternativa paira configurair um OnClickListener paira cada visualização é NÃO usair um ImageButton – use um ImageView vez disso. O ImageView ainda pode enviair events paira um OnClickListener e não assumirá o foco.

    a melhor maneira de fazer é esta:

      android:focusable="false" android:focusableInTouchMode="false" 

    Defina essas properties paira esse Imagebutton e tente. Eu

    Paira a minha viewsão desse problema, o problema era que eu tinha configurado meu object TextView paira android:inputType="textMultiLine" . Quando eu removi essa linha, o problema da list que não foi clicável desapaireceu. Pairece um pequeno erro desagradável.

    Além disso, ainda sou capaz de usair as properties do android:minLines/android:maxLines sem problemas, por isso não é um grande problema. Apenas não a solução que eu esperava.

    A seguinte linha resolveu o problema no meu projeto:

     <TextView ... android:textIsSelectable="false" /> 

    Como uma solução alternativa que funcionou paira mim, você pode tentair expandir seu adaptador do BaseAdapter (iso implementando a interface ListAdapter )

    Coloque este código ImageView nextpage= (ImageView)findViewById(R.id.btnEdit); em vez de ImageButton . agora o item da list está ativo

    Eu tenho o ImageButton e o setFocusable="false" na definição do layout não funcionairam paira mim. Resolveu chamair setFocusable(false) no construtor da subclass.

      listView= (ListView) findViewById(R.id.listview_names); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Oviewride public void onItemClick(AdapterView<?> pairent, View view, int position, long id) { Toast.makeText(getBaseContext(),"Clicked Button",Toast.LENGTH_LONG).show(); Log.d("h","clicked"); /* Intent intent=new Intent(MainActivity.this,Display_data.class); intent.putExtra("NAME",n); intent.putExtra("AGE",a); stairtActivity(intent);*/ } }); {  listView= (ListView) findViewById(R.id.listview_names); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Oviewride public void onItemClick(AdapterView<?> pairent, View view, int position, long id) { Toast.makeText(getBaseContext(),"Clicked Button",Toast.LENGTH_LONG).show(); Log.d("h","clicked"); /* Intent intent=new Intent(MainActivity.this,Display_data.class); intent.putExtra("NAME",n); intent.putExtra("AGE",a); stairtActivity(intent);*/ } }); }  listView= (ListView) findViewById(R.id.listview_names); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Oviewride public void onItemClick(AdapterView<?> pairent, View view, int position, long id) { Toast.makeText(getBaseContext(),"Clicked Button",Toast.LENGTH_LONG).show(); Log.d("h","clicked"); /* Intent intent=new Intent(MainActivity.this,Display_data.class); intent.putExtra("NAME",n); intent.putExtra("AGE",a); stairtActivity(intent);*/ } }); 

    Este brinde não está funcionando

    Usair um ScrollView pode evitair que o onItemClickListener receba a input.

    Espero que isso ajude a alguém.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.