![](/img/trans.png)
[英]How to make one ImageView invisible when another clickable ImageView is pressed?
[英]How to make imageView clickable from OnItemClickListener?
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, View view, final int position, long id)
{
// My code is here. I want make my image clickable. I don't want make it clickable in my CustomAdapter getView() method because it doesn't allows me open DialogFragment from there.
// I already setted in xml of image clickable="true" and focusable = "false"
//I'll admit for any help and thanks in advance
}
}
如果從適配器獲取圖像Onclick,則不能從listview事件獲取setOnItemClickListener。我建議您可以從適配器獲取Onclick,而不是setOnItemClickListener從適配器獲取Onclick。
首先,您必須在Adapter類中為Imageview添加OnClickListener
viewHolder.button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick()
}
});
然后,您可以在onItemClick
訪問ImageView后
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
long viewId = view.getId();
if (viewId == R.id.button1) {
Toast.makeText(this, "Button 1 clicked", Toast.LENGTH_SHORT).show();
} else if (viewId == R.id.button2) {
Toast.makeText(this, "Button 2 clicked", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "ListView clicked" + id, Toast.LENGTH_SHORT).show();
}
}
請享用!...
顯示來自適配器的對話框應該不是問題。 如果您的適配器需要它沒有的東西,那么您可以為適配器添加一個帶有某些偵聽器的字段,例如private final OnImageClickListener
並創建一個接口:
public interface OnImageClickListener {
void onImageClicked(View view, int position, int id);
}
從活動或片段創建適配器時,可以在活動/片段中或在匿名類內部實現此接口,並且可以在其中訪問片段管理器並執行所需的任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.