我有这个代码来点击gridview中的图像时启动所需的活动:
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
switch (v.getId()) {
case R.drawable.stock:
Intent i = new Intent(acceuil.this,carburant.class);
startActivity(i);
}
}
});
不幸的是,当我点击图像时没有任何反应。这段代码有什么问题?非常感谢你。
答案 0 :(得分:0)
处理必须通过操纵元素的位置而不是图像的名称来完成,这里是正确的代码:
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
switch (**position**) {
case **0**:
Intent i = new Intent(acceuil.this,carburant.class);
startActivity(i);
}
}
});
答案 1 :(得分:0)
是的,因为视图ID和可绘制ID不相同,所以不起作用。
如果您已经像示例here中那样实现了GridView,那么您应该能够使用onItemClick()
中的position参数从数组中检索可绘制的id并将开关块基于那。当然,为了使用switch,你需要将该值设为最终值,但这并不直接相关。