处理列表视图中的多个可点击区域
Handling multiple clickable areas in listview
我正在使用 ListView 在我的应用程序中显示一些图像和名称。我可以使 ListView 磁贴可点击并开始新的活动。但现在我想对一个列表视图图块上的不同项目执行不同的操作。如果用户点击图像,图像打开并且 textView 将显示一些吐司或其他东西。 ImageView 和 TextView 在同一个 ListView Tile 上。我怎样才能做到这一点?有帮助吗?
根据需要在您的适配器中为按钮和文本视图定义 OnClickListener 事件,您就完成了。默认情况下,它们将在列表项的点击事件之前。
如果自定义行布局中包含的视图没有点击事件,它将回退到列表视图项的点击事件。
你可以在adapter中实现click事件,但你也在activity中实现。
您可以在 :http://www.migapro.com/click-events-listview-gridview/
中找到解决方案
希望对您有所帮助。
一些注意事项:不应该像上面的教程那样在 gridview 中使用视图持有者,它会产生一些错误,可以像这样直接实现:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick()
}
});
另一种优雅地实现它的方法是将名为 'accessories' 的辅助视图添加到与您的 ListView 关联的项目视图。 Cyril Mottier 在下面的 link 中对此进行了很好的解释: Android 平台上的 Google 开发专家:
http://cyrilmottier.com/2011/11/23/listview-tips-tricks-4-add-several-clickable-areas/
我正在使用 ListView 在我的应用程序中显示一些图像和名称。我可以使 ListView 磁贴可点击并开始新的活动。但现在我想对一个列表视图图块上的不同项目执行不同的操作。如果用户点击图像,图像打开并且 textView 将显示一些吐司或其他东西。 ImageView 和 TextView 在同一个 ListView Tile 上。我怎样才能做到这一点?有帮助吗?
根据需要在您的适配器中为按钮和文本视图定义 OnClickListener 事件,您就完成了。默认情况下,它们将在列表项的点击事件之前。
如果自定义行布局中包含的视图没有点击事件,它将回退到列表视图项的点击事件。
你可以在adapter中实现click事件,但你也在activity中实现。 您可以在 :http://www.migapro.com/click-events-listview-gridview/
中找到解决方案希望对您有所帮助。 一些注意事项:不应该像上面的教程那样在 gridview 中使用视图持有者,它会产生一些错误,可以像这样直接实现:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v, position, 0); // Let the event be handled in onItemClick()
}
});
另一种优雅地实现它的方法是将名为 'accessories' 的辅助视图添加到与您的 ListView 关联的项目视图。 Cyril Mottier 在下面的 link 中对此进行了很好的解释: Android 平台上的 Google 开发专家:
http://cyrilmottier.com/2011/11/23/listview-tips-tricks-4-add-several-clickable-areas/