後,情況是這樣的:我有一些項目列表視圖。每個項目內都有兩個可點擊的視圖,只有在用戶點擊父項目後纔會顯示。Onclicklistener的ListView項內的子視圖,僅啓動第二次onitemclicklistener
它的工作原理是這樣的:
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();
}
});
第一次ListView項被點擊,其txtAdd和txtRemove子視圖中顯示,然後,如果用戶點擊它們,則執行其onclickListener內部代碼。
只出現在第一ListView項的問題。第一次被點擊txtAdd和txtRemove顯示,但第一次用戶點擊過孩子的意見,他們的父母的ItemClickListener被再次被解僱,那麼孩子的意見(txtAdd和txtRemove)沒有收到clickListener。接下來的時間他們是完美的工作。奇怪的是,它只發生在listView中的第一個項目上。
任何想法?提前致謝!
的子視圖中創建一個LinearLayout中,把你的'txtAdd'和' txtRemove'放在這個線性佈局中,保持Linearlayout爲'visiblity = gone'。在列表項上,單擊將該線性佈局的可見性設置爲「可見」。然後觸發'txtAdd'和'txtRemove'的點擊事件。 – Vikrant
這與我所做的相同,是不是@Vikrant?無論如何感謝 – Hugo
必須添加'android:descendantFocusability =「blocksDescendants」'到你的列表視圖xml? – Vikrant