Android 获取适配器类中ImageView onClick侦听器的位置
我想获得imageView onclick的位置,但我不知道如何实现它。 代码:Android 获取适配器类中ImageView onClick侦听器的位置,android,adapter,Android,Adapter,我想获得imageView onclick的位置,但我不知道如何实现它。 代码: 公共类InteractiveArrayaAdapter扩展 阵列适配器{ 公共布尔[]checkBoxState; 布尔[]favStar; 持票人持票人; //私人物品充气机; 私人充气机; 私有ArrayList菜单项; 公共InteractiveArrayAdapter(上下文、int资源、, ArrayList菜单项){ 超级(上下文、资源、菜单项); this.menuItems=menuItems; 充
公共类InteractiveArrayaAdapter扩展
阵列适配器{
公共布尔[]checkBoxState;
布尔[]favStar;
持票人持票人;
//私人物品充气机;
私人充气机;
私有ArrayList菜单项;
公共InteractiveArrayAdapter(上下文、int资源、,
ArrayList菜单项){
超级(上下文、资源、菜单项);
this.menuItems=menuItems;
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
checkBoxState=new boolean[menuItems.size()];
}
私有类视窗持有者{
//ImageView照片;
文本视图标题、链接、已发布、说明;
//图像按钮新闻检查;
公共图像查看新闻检查;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
//充气机=
//LayoutInflater.getSystemService(Context.LAYOUT\u flater\u服务);
convertView=充气机。充气(R.layout.list_item1,空);
viewholder=新的viewholder();
//缓存视图
//viewholder.photo=(ImageView)
//convertView.findViewById(R.id.photo);
viewholder.title=(TextView)convertView
.findviewbyd(R.id.news_title);
//viewholder.link=(TextView)convertView.findViewById(R.id.link);
viewholder.published=(TextView)convertView
.findviewbyd(R.id.published);
viewholder.description=(TextView)convertView
.findViewById(R.id.说明);
viewholder.newsCheck=(ImageView)convertView
.findviewbyd(R.id.newsCheck);
系统输出打印项次(“位置”+位置);
//将缓存的视图链接到convertview
convertView.setTag(viewholder);
}否则
viewholder=(viewholder)convertView.getTag();
HashMap catalog_list=新建HashMap();
catalog\u list=menuItems.get(位置);
//viewholder.link.setText(catalog\u list.get(“NEWS\u KEY\u link”)
//
//viewholder.link.setText(目录列表
//.get(NewsXMLParsingActivity.NEWS_KEY_LINK));
viewholder.title.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_TITLE));
viewholder.published.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_PUB));
viewholder.description.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_DESCRIPTION));
viewholder.newsCheck.setTag(位置);
viewholder.newsCheck.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
viewholder.newsCheck.getTag(位置);
System.out.println(viewholder.newsCheck.getTag(position));
}
});
返回视图;
}
}
您可以使用标签
来获取您想要的一切
您需要编写以下代码:
viewholder.newsCheck.setTag(position);
然后您可以使用getTag()
方法获取您的值
更新
您需要在onClick方法上使用v.getTag()来获取位置
那么您的代码应该如下所示:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
// inflater =
// LayoutInflater.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item1, null);
viewholder = new ViewHolder();
// cache the views
// viewholder.photo=(ImageView)
// convertView.findViewById(R.id.photo);
viewholder.title = (TextView) convertView
.findViewById(R.id.news_title);
// viewholder.link = (TextView) convertView.findViewById(R.id.link);
viewholder.published = (TextView) convertView
.findViewById(R.id.published);
viewholder.description = (TextView) convertView
.findViewById(R.id.description);
viewholder.newsCheck = (ImageView) convertView
.findViewById(R.id.newsCheck);
viewholder.newsCheck.setTag(position); // add this line
System.out.println("position" + position);
// link the cached views to the convertview
convertView.setTag(viewholder);
} else
viewholder = (ViewHolder) convertView.getTag();
HashMap<String, String> catalog_list = new HashMap<String, String>();
catalog_list = menuItems.get(position);
// viewholder.link.setText(catalog_list.get("NEWS_KEY_LINK")
//
// viewholder.link.setText(catalog_list
// .get(NewsXMLParsingActivity.NEWS_KEY_LINK));
viewholder.title.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_TITLE));
viewholder.published.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_PUB));
viewholder.description.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_DESCRIPTION));
viewholder.newsCheck.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("position is" , ""+v.getTag()); // get position of your view
}
});
return convertView;
}
@覆盖
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
//充气机=
//LayoutInflater.getSystemService(Context.LAYOUT\u flater\u服务);
convertView=充气机。充气(R.layout.list_item1,空);
viewholder=新的viewholder();
//缓存视图
//viewholder.photo=(ImageView)
//convertView.findViewById(R.id.photo);
viewholder.title=(TextView)convertView
.findviewbyd(R.id.news_title);
//viewholder.link=(TextView)convertView.findViewById(R.id.link);
viewholder.published=(TextView)convertView
.findviewbyd(R.id.published);
viewholder.description=(TextView)convertView
.findViewById(R.id.说明);
viewholder.newsCheck=(ImageView)convertView
.findviewbyd(R.id.newsCheck);
viewholder.newsCheck.setTag(位置);//添加此行
系统输出打印项次(“位置”+位置);
//将缓存的视图链接到convertview
convertView.setTag(viewholder);
}否则
viewholder=(viewholder)convertView.getTag();
HashMap catalog_list=新建HashMap();
catalog\u list=menuItems.get(位置);
//viewholder.link.setText(catalog\u list.get(“NEWS\u KEY\u link”)
//
//viewholder.link.setText(目录列表
//.get(NewsXMLParsingActivity.NEWS_KEY_LINK));
viewholder.title.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_TITLE));
viewholder.published.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_PUB));
viewholder.description.setText(目录列表
.get(NewsXMLParsingActivity.NEWS_KEY_DESCRIPTION));
viewholder.newsCheck.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Log.d(“position is”,“”+v.getTag());//获取视图的位置
}
});
返回视图;
}
您可以为ImageView设置标记,然后通过调用getTag()方法获取其位置。它给我空值:System.out.println(viewholder.newsCheck.getTag(position));您需要v.getTag()
ononClick
方法获取视图的位置参见我的编辑@poojagupta@Shyayanpourvatan现在我想在点击该图像时更改该图像我该怎么做?您到底想要什么?有多少图像
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
// inflater =
// LayoutInflater.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item1, null);
viewholder = new ViewHolder();
// cache the views
// viewholder.photo=(ImageView)
// convertView.findViewById(R.id.photo);
viewholder.title = (TextView) convertView
.findViewById(R.id.news_title);
// viewholder.link = (TextView) convertView.findViewById(R.id.link);
viewholder.published = (TextView) convertView
.findViewById(R.id.published);
viewholder.description = (TextView) convertView
.findViewById(R.id.description);
viewholder.newsCheck = (ImageView) convertView
.findViewById(R.id.newsCheck);
viewholder.newsCheck.setTag(position); // add this line
System.out.println("position" + position);
// link the cached views to the convertview
convertView.setTag(viewholder);
} else
viewholder = (ViewHolder) convertView.getTag();
HashMap<String, String> catalog_list = new HashMap<String, String>();
catalog_list = menuItems.get(position);
// viewholder.link.setText(catalog_list.get("NEWS_KEY_LINK")
//
// viewholder.link.setText(catalog_list
// .get(NewsXMLParsingActivity.NEWS_KEY_LINK));
viewholder.title.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_TITLE));
viewholder.published.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_PUB));
viewholder.description.setText(catalog_list
.get(NewsXMLParsingActivity.NEWS_KEY_DESCRIPTION));
viewholder.newsCheck.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("position is" , ""+v.getTag()); // get position of your view
}
});
return convertView;
}