在android中获取自定义adapterview中imageview的位置
我正在尝试获取listview中图像的位置。我使用了下面的代码,但我得到的错误是“不能引用在不同方法中定义的内部类中的非最终变量位置”。但当我宣布位置为最终位置时,位置值对我来说并没有改变。我需要更改项目单击的位置在android中获取自定义adapterview中imageview的位置,android,listview,Android,Listview,我正在尝试获取listview中图像的位置。我使用了下面的代码,但我得到的错误是“不能引用在不同方法中定义的内部类中的非最终变量位置”。但当我宣布位置为最终位置时,位置值对我来说并没有改变。我需要更改项目单击的位置 listViewCatalog.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View vi
listViewCatalog.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position,
long id) {
System.out.println("Done");
if(view == null){
view = inflater.inflate(R.layout.item, parent, false);
}
imageView = (ImageView) view.findViewById(R.id.ImageViewWishlist);
imageView.setTag(new Integer(position));
//imageView.setTag("grey");
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
selectedProduct = mProductList.get(position);
String tag = imageView.getTag().toString();
System.out.println("Testing tag "+tag);
if(favr.contains(selectedProduct)) {
System.out.println("Exist");
System.out.println("Testing tag 1 "+tag);
imageView.setImageResource(R.drawable.heart_grey);
favr.remove(selectedProduct);
}else{
System.out.println("New");
System.out.println("Testing tag 2 "+tag);
imageView.setImageResource(R.drawable.heart_red);
favr.add(selectedProduct);
}
}
});
Intent productDetailsIntent = new Intent(getBaseContext(),ProductDetailsActivity.class);
productDetailsIntent.putExtra(ShoppingCartHelper.PRODUCT_INDEX, position);
startActivity(productDetailsIntent);
}
});
listViewCatalog.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、最终整型位置、,
长id){
系统输出打印项次(“完成”);
如果(视图==null){
视图=充气机。充气(R.layout.item,父项,false);
}
imageView=(imageView)view.findViewById(R.id.ImageViewWishlist);
setTag(新的整数(位置));
//imageView.setTag(“灰色”);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
selectedProduct=MPProductList.get(位置);
字符串标记=imageView.getTag().toString();
系统输出打印项次(“测试标签”+标签);
如果(favr.contains(selectedProduct)){
System.out.println(“存在”);
系统输出打印项次(“测试标签1”+标签);
imageView.setImageResource(R.drawable.heart_Gray);
favr.移除(所选产品);
}否则{
系统输出打印项次(“新”);
系统输出打印项次(“测试标签2”+标签);
imageView.setImageResource(R.drawable.heart_-red);
favr.add(选择的产品);
}
}
});
Intent ProductDetailsInt=新的Intent(getBaseContext(),ProductDetailsActivity.class);
ProductDetailsInt.putExtra(ShoppingCartHelper.PRODUCT\u索引,位置);
startActivity(产品详细信息);
}
});
创建一个局部最终变量,并将位置分配给该变量,如-->final int localPosition=position;很抱歉,我无法让您在类级别声明int localPosition
,我尝试过,但仍然得到错误@Jibran khanca您可以显示自定义适配器以及声明变量的位置吗?在上面的代码中找不到位置变量创建一个本地最终变量并将位置分配给该变量,如-->final int localPosition=position;很抱歉,我无法让您在类级别声明int localPosition
,我尝试过,但仍然得到错误@Jibran khanca您可以显示自定义适配器以及声明变量的位置吗?在上述代码中找不到位置变量