Exemplo n.º 1
0
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
      View v;
      if (convertView == null) {
        v = mInflater.inflate(R.layout.monitor, parent, false);
      } else {
        v = convertView;
      }

      Monitor monitor = getMonitorByPosition(position);

      TextView monitorName = (TextView) v.findViewById(R.id.monitorName);
      monitorName.setText(monitor.name());

      TextView monitorDescription = (TextView) v.findViewById(R.id.monitorDescription);
      monitorDescription.setText(monitor.desc());

      Button removeButton = (Button) v.findViewById(R.id.removeMonitorButton);
      removeButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              new DeleteMonitorDialogFragment(
                      new Runnable() {
                        @Override
                        public void run() {
                          monitoringService.removeMonitor(getMonitorIdByPosition(position));
                          onDataChange();
                        }
                      })
                  .show(getFragmentManager(), "DeleteMonitor");
            }
          });

      Button editButton = (Button) v.findViewById(R.id.editMonitorButton);
      editButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              Intent intent = new Intent(MainActivity.this, TickerMonitorEditActivity.class);
              intent.putExtra(MONITOR_ID, getMonitorIdByPosition(position));
              startActivityForResult(intent, 1);
              // actual change the monitor is done on onActivityResult
            }
          });

      GridView monitorResponses = (GridView) v.findViewById(R.id.monitorResponses);
      try {
        ResponseAdapter adapter = monitorResultsAdapters.get(monitor);
        monitorResponses.setAdapter(adapter);
      } catch (RuntimeException e) {
        Log.e(CoynesMonitoring.TAG, "caught exception", e);
        throw e;
      }

      return v;
    }