Android 如何动态更改ImageView的onClick操作?
我有一个ImageView,它执行一个名为setAsFavorite()的操作。此操作将产品设置为收藏夹,因此我更改ImageView的图像。但是当产品是favorite时,我想更改onclick事件,因此当用户按下imageView时,调用的操作应该是unsetAsFavorite(),而不是setAsFavorite。Android 如何动态更改ImageView的onClick操作?,android,onclick,imageview,Android,Onclick,Imageview,我有一个ImageView,它执行一个名为setAsFavorite()的操作。此操作将产品设置为收藏夹,因此我更改ImageView的图像。但是当产品是favorite时,我想更改onclick事件,因此当用户按下imageView时,调用的操作应该是unsetAsFavorite(),而不是setAsFavorite。 如何动态更改onclick事件?获取对ImageView的引用: getView().findViewById(R.id.your_img_view_id) 然后像这样给它
如何动态更改onclick事件?获取对ImageView的引用:
getView().findViewById(R.id.your_img_view_id)
然后像这样给它分配一个新的侦听器:yourImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// your code here
}
});
通过这种方式,可以用新的侦听器更改旧的侦听器。获取对ImageView的引用:
getView().findViewById(R.id.your_img_view_id)
然后像这样给它分配一个新的侦听器:yourImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// your code here
}
});
这样你就可以用新的听众来改变旧的听众。李艾夫给出的答案就足够了。但有一个更好的选择。 如果,则使用
boolean isFavourite = false;
public void switchFavorite(){//Replace function setAsFavorite() with this
if(isFavourite)
isFavourite = false;
else
isFavourite = true;
}
这样可以减少作业所需的功能数量。李艾夫给出的答案就足够了。但有一个更好的选择。
如果
,则使用
boolean isFavourite = false;
public void switchFavorite(){//Replace function setAsFavorite() with this
if(isFavourite)
isFavourite = false;
else
isFavourite = true;
}
这样可以减少作业所需的功能数量。您可以使用一个标志来知道它是否被设置为收藏夹,然后执行该操作
yourImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(isSetAsFavorite){
unsetAsFavorite();
} else {setAsFavorite();}
}
});
其中IsSetsFavorite是布尔类型。您可以使用一个标志来知道它是否被设置为收藏夹,然后执行该操作
yourImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(isSetAsFavorite){
unsetAsFavorite();
} else {setAsFavorite();}
}
});
其中IsSetsFavorite是布尔类型。我认为在您的onclick
方法setAsFavorite()
&unsetAsFavorite()
我认为在您的onclick
方法setAsFavorite()
&unsetAsFavorite()
在imageview的单击事件中处理布尔值。在此基础上,您可以更改imageview的图像。在imageview的单击事件中处理布尔值。基于此,您可以更改imageview的图像。