Добавьте массив кнопок к GridView в приложении Android

Добавьте его в качестве пользовательского параметра проверки, например, так:

class CustomValidationRule extends Rule
{
    public $max;

    public function __construct($max = 255)
    {
        $this->max = $max;
    }
}

И вы можете получить к нему доступ в методе pass, например $this->max

И инициировать значение следующим образом: [115 ]

new CustomValidationRule(255)
16
задан Nikhil 22 June 2012 в 09:50
поделиться

3 ответа

Это очень похоже, если не равно проблеме с флажками: вспомогательный метод Html.Checkbox () генерирует скрытое поле с ложным значением. Если бы это поле отсутствовало, браузер не отправлял бы какие-либо данные для непроверенных ящиков. Однако предполагается, что радиокнопка имеет значение, а возможные значения могут быть больше одного. В этом случае не так легко справиться с делом без выбора, что, я думаю, и является причиной того, что это не так.

14
ответ дан 30 November 2019 в 15:52
поделиться

Если вы используете 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, концепция которых поначалу немного трудна для понимания, пока вы не поймете, что в ней есть значительная оптимизация (должно быть хорошо для ЦП на маленьком мобильном устройстве)

9
ответ дан 30 November 2019 в 15:52
поделиться

В следующем коде необходимо изменить верхние пределы 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
24
ответ дан 30 November 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: