Добавьте его в качестве пользовательского параметра проверки, например, так:
class CustomValidationRule extends Rule
{
public $max;
public function __construct($max = 255)
{
$this->max = $max;
}
}
И вы можете получить к нему доступ в методе pass, например $this->max
И инициировать значение следующим образом: [115 ]
new CustomValidationRule(255)
Это очень похоже, если не равно проблеме с флажками: вспомогательный метод Html.Checkbox () генерирует скрытое поле с ложным значением. Если бы это поле отсутствовало, браузер не отправлял бы какие-либо данные для непроверенных ящиков. Однако предполагается, что радиокнопка имеет значение, а возможные значения могут быть больше одного. В этом случае не так легко справиться с делом без выбора, что, я думаю, и является причиной того, что это не так.
Если вы используете GridView или ListView (и т. Д.) и создаете представления для заполнения их через адаптер getView (pos, convertView, viewGroup) , вы можете столкнуться с путаницей (я однажды сделал).
Если вы решите повторно использовать параметр convertView, вы должны сбросить все внутри него. Это старое представление, которое фреймворк передает вам, чтобы сэкономить на раздутии макета. Он почти никогда не ассоциируется с позицией , которая была в макете раньше.
class GridAdapter extends BaseAdapter // assigned to your GridView
{
public View getView(int position, View convertView, ViewGroup arg2) {
View view;
if (convertView==null)
{
view = getLayoutInflater().inflate(R.layout.gd_grid_cell, null);
}
else
{
// reusing this view saves inflate cost
// but you really have to restore everything within it to the state you want
view = convertView;
}
return view;
}
// other methods omitted (e.g. getCount, etc)
}
Я думаю, что это одна из тех вещей Android, концепция которых поначалу немного трудна для понимания, пока вы не поймете, что в ней есть значительная оптимизация (должно быть хорошо для ЦП на маленьком мобильном устройстве)
В следующем коде необходимо изменить верхние пределы for
на переменную.
public class MainActivity
extends Activity
implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TableLayout layout = new TableLayout (this);
layout.setLayoutParams( new TableLayout.LayoutParams(4,5) );
layout.setPadding(1,1,1,1);
for (int f=0; f<=13; f++) {
TableRow tr = new TableRow(this);
for (int c=0; c<=9; c++) {
Button b = new Button (this);
b.setText(""+f+c);
b.setTextSize(10.0f);
b.setTextColor(Color.rgb( 100, 200, 200));
b.setOnClickListener(this);
tr.addView(b, 30,30);
} // for
layout.addView(tr);
} // for
super.setContentView(layout);
} // ()
public void onClick(View view) {
((Button) view).setText("*");
((Button) view).setEnabled(false);
}
} // class