saeidd
شنبه 22 آذر 1393, 09:15 صبح
سلام.
من یک ListView دارم که با متد getview آیتمهاش رو مقدار دهی می کنم. برای اینکه زمان لمس بر روی هر آیتم (کلیک) رنگ زمینه اش عوض بشه و زمان اتمام لمس دوباره به رنگ اولیه برگرده، متد SenOnTouchListener رو داخل همین getview نوشتم. به این صورت:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater in=getLayoutInflater();
View row=in.inflate(R.layout.row_onvan, parent,false);
if (position%2==0){
row.setBackgroundColor(Color.parseColor("#cadff7"));
}
else{
row.setBackgroundColor(Color.parseColor("#ebebeb"));
}
row.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {
arg0.setBackgroundColor(Color.parseColor("#faba3a"));
break;
}
case MotionEvent.ACTION_UP:{
arg0.setBackgroundColor(Color.parseColor("#cadff7"));
break;
}
}
return false;
}
});
return (row);
}
حالا مشکلش اینه که موقع ACTION_DOWN رنگ زمینه رو درست عوض می کنه ولی موقع ACTION_UP برنمیگردونه سر جاش؛ یعنی اصلا دستورش اجرا نمیشه.
ایراد از چیه؟
من یک ListView دارم که با متد getview آیتمهاش رو مقدار دهی می کنم. برای اینکه زمان لمس بر روی هر آیتم (کلیک) رنگ زمینه اش عوض بشه و زمان اتمام لمس دوباره به رنگ اولیه برگرده، متد SenOnTouchListener رو داخل همین getview نوشتم. به این صورت:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater in=getLayoutInflater();
View row=in.inflate(R.layout.row_onvan, parent,false);
if (position%2==0){
row.setBackgroundColor(Color.parseColor("#cadff7"));
}
else{
row.setBackgroundColor(Color.parseColor("#ebebeb"));
}
row.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {
arg0.setBackgroundColor(Color.parseColor("#faba3a"));
break;
}
case MotionEvent.ACTION_UP:{
arg0.setBackgroundColor(Color.parseColor("#cadff7"));
break;
}
}
return false;
}
});
return (row);
}
حالا مشکلش اینه که موقع ACTION_DOWN رنگ زمینه رو درست عوض می کنه ولی موقع ACTION_UP برنمیگردونه سر جاش؛ یعنی اصلا دستورش اجرا نمیشه.
ایراد از چیه؟