• Source
    1. import java.util.ArrayList;
    2. import java.util.List;
    3.  
    4. import android.content.Context;
    5. import android.util.SparseArray;
    6. import android.view.LayoutInflater;
    7. import android.view.View;
    8. import android.view.ViewGroup;
    9. import android.widget.ArrayAdapter;
    10. import android.widget.GridView;
    11. import android.widget.TextView;
    12.  
    13. import static ru.binarysimple.workcal.Utils.getMonthSize;
    14. import static ru.binarysimple.workcal.Utils.getMonthSpecDays;
    15. import static ru.binarysimple.workcal.Utils.getWeekDayOfFirstDay;
    16.  
    17. public class MonthAdapterLV extends ArrayAdapter<String> {
    18.  
    19. private final Context ctx;
    20. private final LayoutInflater lInflater;
    21. private final List<String> objects;
    22.  
    23. MonthAdapterLV(Context context, List<String> months) {
    24. super(context, R.layout.month_view, months);
    25. ctx = context;
    26. objects = months;
    27. lInflater = (LayoutInflater) ctx
    28. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    29. }
    30.  
    31. public static class ViewHolder {
    32. TextView month_name;
    33. ExpGridView monthGrid;
    34. }
    35.  
    36. // кол-во элементов
    37. @Override
    38. public int getCount() {
    39. return objects.size();
    40. }
    41.  
    42. public void delItem(int position) {
    43. objects.remove(position);
    44. }
    45.  
    46. @Override
    47. public String getItem(int i) {
    48. return objects.get(i);
    49. }
    50.  
    51. // id по позиции
    52. @Override
    53. public long getItemId(int position) {
    54. return position;
    55. }
    56.  
    57. // пункт списка
    58. @Override
    59. public View getView(int position, View convertView, ViewGroup parent) {
    60. ViewHolder viewHolder;
    61. // используем созданные, но не используемые view
    62. if (convertView == null){
    63. LayoutInflater inflater = (LayoutInflater) ctx
    64. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    65. convertView = inflater.inflate(R.layout.month_view, parent, false);
    66. viewHolder = new ViewHolder();
    67. viewHolder.month_name = (TextView) convertView.findViewById(R.id.month_name);
    68. viewHolder.monthGrid = (ExpGridView) convertView.findViewById(R.id.month_grid);
    69. convertView.setTag(viewHolder);
    70. } else {
    71. viewHolder = (ViewHolder) convertView.getTag();
    72. }
    73.  
    74. viewHolder.month_name.setText(getItem(position));
    75.  
    76. new AsyncLoadMonthGrid(viewHolder,position,viewHolder.monthGrid.getContext()).execute();
    77. return convertView;
    78. }
    79.  
    80.  
    81. private String getMonth(int position) {
    82. return objects.get(position);
    83. }
    84.  
    85. }
    86.  
    87.  
    88.