lvResults
我有一个Custom ArrayAdapter,我注册了ListView:
lvResults.setAdapter(arrayadapter);
适配器包含4个元素,最后一个是Icon。
public View getView(int position, View convertView, ViewGroup parent)
方法,我为每一行创建了视图。如何确定是否点击了图像(worldicon)?
我开始在onItemClick
方法中尝试这个,但我不知道:
lvResults.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
}
});
有人可以帮忙吗?
答案 0 :(得分:4)
在getView()
方法内的自定义适配器中,使用Holder
并将onClickLister
设置为ImageView
。试试下面的代码:
public class Holder
{
ImageView world;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.single_row, null);
holder.world = (ImageView) rowView.findViewById(R.id.world_icon);
holder.world.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// do your onClick action here
}
});
return rowView;
}
希望这有帮助。
答案 1 :(得分:2)
将onclick侦听器添加到阵列适配器中的该imageview。 itemview单击侦听器无法标识项目中的每个元素。
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
convertView = layoutInflater.inflate(layout.your_layout,null);
holder.worldImage = (ImageView) convertView.findViewById(id.world_image);
holder.worldImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// perform necessary action
}
});
答案 2 :(得分:0)
如果要将onclick侦听器添加到世界图标。在自定义适配器本身,您需要将onclick监听器添加到世界图标的imageview。您可以为imageview指定ID或标记,以识别单击的世界图标。