我在TextViews
中有两个ImageView
和一个GridView
,并在用户点击它时尝试更改ImageView
的背景。我能够第一次更改背景,之后如果我点击它就不会发生任何事情。另一个问题是,如果我向下滚动,我会看到其他图像的背景图像发生变化。我想在特定位置更改图像的背景。说如果我点击第一个项目图像我想只更改该图像。以下是我的代码。在此先感谢,非常感谢您的帮助。
GridView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
btnCheckImage1 = (ImageView)v.findViewById(R.id.btnCheckImaget);
if (btnCheckImage1.getDrawable() != v.getResources().getDrawable(R.drawable.compselection_checked_btn) ) {
btnCheckImage1.setBackgroundResource(R.drawable.compselection_checked_btn);
}
else if (btnCheckImage1.getDrawable() == v.getResources().getDrawable(R.drawable.compselection_checked_btn) ) {
btnCheckImage1.setBackgroundResource(R.drawable.compselection_btn);
}
}
});
答案 0 :(得分:0)
您需要使用OBJECT.equals(OBJECT)方法来比较drawable。
btnCheckImage1 = (ImageView)v.findViewById(R.id.btnCheckImaget);
if (btnCheckImage1.getDrawable() != v.getResources().getDrawable(R.drawable.compselection_checked_btn) ) {
btnCheckImage1.setBackgroundResource(R.drawable.compselection_checked_btn);
}
每次点击都会触发,因此在第一次点击后,除非您正确进行比较,否则您不会注意到更改。
答案 1 :(得分:0)
我想在特定位置更改图像的背景。 说如果我点击第一个项目图像我想只为此更改 图像。
对于这个问题,您必须在onItemClick
尝试在用户点击时更改ImageView的背景。
为此,你必须在selector
文件夹中使用res
在该文件夹中创建drawable
文件夹创建selector
代码段
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/blue" android:state_selected="true"/>
<item android:drawable="@color/transparent"/>
</selector>
并在main layout's gridview
为gridview设置选择器,如tjis
android:listSelector="@drawable/your_selector"