Котлин добавляет произвольное количество просмотров [дубликат]

Метод [T]::iter_mut() возвращает итератор, который может дать изменяемую ссылку для каждого элемента в срезе. Другие коллекции также имеют метод iter_mut. Эти методы часто инкапсулируют небезопасный код, но их интерфейс полностью безопасен.

Вот черта расширения общего назначения, которая добавляет метод на срезах, который возвращает изменчивые ссылки на два разных элемента по индексу:

pub trait SliceExt {
    type Item;

    fn get_two_mut(&mut self, index0: usize, index1: usize) -> (&mut Self::Item, &mut Self::Item);
}

impl SliceExt for [T] {
    type Item = T;

    fn get_two_mut(&mut self, index0: usize, index1: usize) -> (&mut Self::Item, &mut Self::Item) {
        match index0.cmp(&index1) {
            Ordering::Less => {
                let mut iter = self.iter_mut();
                let item0 = iter.nth(index0).unwrap();
                let item1 = iter.nth(index1 - index0 - 1).unwrap();
                (item0, item1)
            }
            Ordering::Equal => panic!("[T]::get_two_mut(): received same index twice ({})", index0),
            Ordering::Greater => {
                let mut iter = self.iter_mut();
                let item1 = iter.nth(index1).unwrap();
                let item0 = iter.nth(index0 - index1 - 1).unwrap();
                (item0, item1)
            }
        }
    }
}

13
задан RajeshVijayakumar 20 October 2012 в 07:17
поделиться

4 ответа

Вы можете создать его так:

EditText myEditText = new EditText(context); // Pass it an Activity or Context
myEditText.setLayoutParams(new LayoutParams(..., ...)); // Pass two args; must be LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, or an integer pixel value.
myLayout.addView(myEditText);

Это может быть реализовано в любом месте в потоке пользовательского интерфейса; прослушиватель кликов, метод onCreate и все, что между ними.

В этом вопросе имеется более общий пример и хорошее изложение этих процессов в этот блог .

20
ответ дан Community 20 August 2018 в 21:55
поделиться

Используйте код ниже для добавления Edittext Программно, он решит вашу проблему.

RelativeLayout mRlayout = (RelativeLayout) findViewById(R.id.mRlayout);
RelativeLayout.LayoutParams mRparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
EditText myEditText = new EditText(context);
myEditText.setLayoutParams(mRparams);
mRlayout.addView(myEditText);
8
ответ дан Dipak Keshariya 20 August 2018 в 21:55
поделиться

Макет

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/TableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
android:gravity="center_horizontal" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Contact Application"
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_horizontal"/>

код

//container Layout
    TableLayout tbl=(TableLayout)findViewById(R.id.TableLayout1);
    //table row
    TableRow tr = new TableRow(this);
    TableLayout.LayoutParams tableRowParams=
            new TableLayout.LayoutParams
            (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);
    //for set margin
    tableRowParams.setMargins(0, 10, 0, 0);
    tr.setLayoutParams(tableRowParams);
    //text view
    TextView tv=new TextView(this);
    tv.setText("Email");
    tv.setGravity(Gravity.CENTER);
    tv.setTextColor(Color.parseColor("#0070C0"));
    tv.setTextSize(26);
    tv.setLayoutParams(new TableRow.LayoutParams(100, TableRow.LayoutParams.WRAP_CONTENT));
    //add textview
    tr.addView(tv);
    //set layout params of edittext
    TableRow.LayoutParams etParams=
            new TableRow.LayoutParams
            (120,30);
    etParams.setMargins(10, 0, 0, 0);

    EditText et=new EditText(this);
    et.setLayoutParams(etParams);
    //set background
    et.setBackgroundResource(R.drawable.bg_grey);
    et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
    tr.addView(et);

    tbl.addView(tr, tableRowParams);
2
ответ дан Sonia John Kavery 20 August 2018 в 21:55
поделиться
0
ответ дан Gayathri 31 October 2018 в 16:57
поделиться
Другие вопросы по тегам:

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