これは状況です。私はリストビューをいくつか持っています。各項目の中には、親項目でクリックした後にのみ表示される2つのクリック可能なビューがあります。ListViewアイテム内の子ビューのOnclickListenerは、onitemclicklistenerの後に2回目だけ起動します。
それは次のように動作します。
productList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, final View view, final int position, long id) {
TextView txtAdd = (TextView) view.findViewById(R.id.txt_add_units);
txtAdd.setVisibility(View.VISIBLE);
txtAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
}
});
TextView txtRemove = (TextView) view.findViewById(R.id.txt_remove_units);
txtRemove.setVisibility(View.VISIBLE);
txtRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
}
});
basketProductsListAdapter.notifyDataSetChanged();
}
});
リストビュー項目がクリックされた最初の時間、そのtxtAddとtxtRemove子ビューが表示され、ユーザーがそれをクリックすると、その後、そのonclickListener内のコードが実行されます。
問題は、最初のリストビュー項目にのみ表示されます。初めてtxtAddとtxtRemoveがクリックされますが、最初はユーザーが子ビューをクリックし、親のItemClickListenerが再び起動され、子ビュー(txtAddおよびtxtRemove)はclickListenerを受信しません。時間の経過に伴い、それらは完全に動作します。奇妙なことは、listViewの最初の項目で初めて発生することです。
アイデア?前もって感謝します!
の子ビューに
を追加してみてください、その後に動作しない場合はフォーカス可能avoideするXMLそれでも
でその行を追加しますLineLayoutを 'visiblity = gone'にしておきます。リスト項目で、その線形レイアウトの可視性をprogarmaticallyで「可視」に設定するをクリックします。次に、 'txtAdd'と' txtRemove'のクリックイベントをトリガします。 – Vikrant
それは私がやっているのとかなり同じです、それは@Vikrantですか?とにかくありがとう – Hugo
'android:descendantFocusability =" blocksDescendants "'をあなたのlistview xmlに追加しましたか? – Vikrant