Guest User

Untitled

a guest
Aug 15th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. Android: Change Button background in ListView Row with onClick
  2. @Override
  3. public View getView(int position, View convertView, ViewGroup parent){
  4.  
  5. if(convertView == null){
  6.  
  7. holder = new ViewHolder();
  8.  
  9. convertView = inflater.inflate(R.layout.todays_sales_favorite_row, null);
  10. holder.favCatBtn = (Button)convertView.findViewById(R.id.favCatBtn);
  11.  
  12. convertView.setTag(holder);
  13.  
  14. } else {
  15. holder = (ViewHolder)convertView.getTag();
  16. }
  17.  
  18. holder.favCatBtn.setTag(position);
  19. holder.favCatBtn.setOnClickListener(this);
  20.  
  21. return convertView;
  22. }
  23.  
  24. @Override
  25. public void onClick(View v) {
  26. int pos = (Integer) v.getTag();
  27. Log.d(TAG, "Button row pos click: " + pos);
  28. RelativeLayout rl = (RelativeLayout)v.getParent();
  29. holder.favCatBtn = (Button)rl.getChildAt(0);
  30. holder.favCatBtn.setBackgroundResource(R.drawable.icon_yellow_star_large);
  31.  
  32. }
  33.  
  34. private final boolean[] mHighlightedPositions = new boolean[NUM_OF_ITEMS];
  35.  
  36. @Override
  37. public View getView(int position, View convertView, ViewGroup parent){
  38.  
  39. if(convertView == null){
  40. holder = new ViewHolder();
  41. convertView = inflater.inflate(R.layout.todays_sales_favorite_row, null);
  42. holder.favCatBtn = (Button)convertView.findViewById(R.id.favCatBtn);
  43. holder.favCatBtn.setOnClickListener(this);
  44. convertView.setTag(holder);
  45. }else {
  46. holder = (ViewHolder)convertView.getTag();
  47. }
  48.  
  49. holder.favCatBtn.setTag(position);
  50.  
  51. if(mHighlightedPositions[position]) {
  52. holder.favCatBtn.setBackgroundResource(R.drawable.icon_yellow_star_large);
  53. }else {
  54. holder.favCatBtn.setBackgroundResource(0);
  55. }
  56.  
  57. return convertView;
  58. }
  59.  
  60. @Override
  61. public void onClick(View view) {
  62. int position = (Integer)view.getTag();
  63. Log.d(TAG, "Button row pos click: " + position);
  64.  
  65. // Toggle background resource
  66. RelativeLayout layout = (RelativeLayout)view.getParent();
  67. Button button = (Button)layout.getChildAt(0);
  68. if(mHighlightedPositions[position]) {
  69. button.setBackgroundResource(0);
  70. mHighlightedPositions[position] = false;
  71. }else {
  72. button.setBackgroundResource(R.drawable.icon_yellow_star_large);
  73. mHighlightedPositions[position] = true;
  74. }
  75. }
Add Comment
Please, Sign In to add comment