Пример #1
0
  private View initField(Entry<String, YParam> entry, LayoutInflater inflater) {
    ParamField v = null;
    String name = entry.getKey();
    YParam value = entry.getValue();
    TextView nameTextView;
    switch (value.getType()) {
      case Integer:
        v = (ParamField) inflater.inflate(R.layout.field_integer, null);
        EditText integerET = (EditText) v.findViewById(R.id.field_integer);
        if (value.getValue() != null) {
          integerET.setText(value.getValue() + "");
        }

        break;
      case Group:
      case String:
        v = (ParamField) inflater.inflate(R.layout.field_string, null);
        EditText stringET = (EditText) v.findViewById(R.id.field_string);
        if (value.getValue() != null) {
          stringET.setText(value.getValue() + "");
        }
        break;
      case Position:
        v = (ParamField) inflater.inflate(R.layout.field_position, null);
        v.findViewById(R.id.field_button_showmap)
            .setOnClickListener(
                new View.OnClickListener() {

                  @Override
                  public void onClick(View v) {
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    PositionMapDialog d = new PositionMapDialog();
                    ft.add(d, "MAP");
                    ft.commit();
                    ((PositionParamField) v.getParent()).setPositionMapDialog(d);
                  }
                });
        break;
      case Boolean:
        v = (ParamField) inflater.inflate(R.layout.field_boolean, null);
        RadioButton trueButton = (RadioButton) v.findViewById(R.id.field_boolean_yes);
        RadioButton falseButton = (RadioButton) v.findViewById(R.id.field_boolean_no);
        boolean defaultBool = (Boolean) value.getValue();
        if (defaultBool) {
          trueButton.setChecked(true);
          falseButton.setChecked(false);
        } else {
          falseButton.setChecked(true);
          trueButton.setChecked(false);
        }
        break;
      case Number:
        v = (ParamField) inflater.inflate(R.layout.field_number, null);
        EditText numberET = (EditText) v.findViewById(R.id.field_number);
        if (value.getValue() != null) {
          numberET.setText(value.getValue() + "");
        }
        v.findViewById(R.id.field_pick_number)
            .setOnClickListener(
                new View.OnClickListener() {

                  @Override
                  public void onClick(View v) {
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    NumberDialogFragment d = new NumberDialogFragment();
                    ft.add(d, "NUMBER_PICKER");
                    ft.commit();
                    ((NumberParamField) v.getParent()).setNumberPickerFragment(d);
                  }
                });
        break;
      default:
        break;
    }
    nameTextView = (TextView) v.findViewById(R.id.field_name);
    nameTextView.setText(name);
    v.setYParam(value);
    v.setName(name);
    return v;
  }