Как добавить разметку таблицы в другую разметку таблицы в Android? - PullRequest
0 голосов
/ 20 мая 2018

Можно ли добавить разметку таблицы в другую разметку таблицы в Android Studio?На самом деле, я хочу добавить новую строку для конкретной позиции.Но когда я пытаюсь добавить новую строку, она всегда добавляется ниже всех строк.

enter image description here

Можете ли вы помочь мне сделать это в Android Studio.

Примечание. Это будет работать во время выполнения,Я имею в виду полностью Java-код.

Здесь Test2.java класс

{

int col = 4, row = 3;
TableLayout tableLayout;
EditText editText;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test2);


    tableLayout = (TableLayout) findViewById(R.id.table2);
    for (int i = 1; i <= col; i++) {
        final TableRow tableRow = new TableRow(this);
        tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
        final TextView text = new TextView(this);
        if (i == 1) {
            text.setText(i + "st");
        } else if (i == 2) {
            text.setText(i + "nd");
        } else if (i == 3) {
            text.setText(i + "rd");
        } else {
            text.setText(i + "th");
        }
        text.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        text.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
        text.setTextColor(-16777216);
        tableRow.addView(text);
        for (int j = 1; j <= row; j++) {
            editText = new EditText(this);
            editText.setTag(editText + String.valueOf(j));
            editText.setHint("Input " + j);
            editText.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
            editText.setBackground(null);
            tableRow.addView(editText);
        }
        final Button button = new Button(this);
        button.setText("Add");
        button.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TableRow r = new TableRow(Test2.this);

                for (int j = 1; j <= row; j++) {
                    editText = new EditText(Test2.this);
                    editText.setTag(editText + String.valueOf(j));
                    editText.setHint("New " + j);
                    editText.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
                    editText.setBackground(null);
                    r.addView(editText);
                }
                tableLayout.addView(r);
            }
        });
        tableRow.addView(button);
        tableLayout.addView(tableRow);
    }
}

}

1 Ответ

0 голосов
/ 21 мая 2018

попробуйте этот фрагмент

 int index = tableLayout.getChildCount();
        tableRow.setTag(index);

        final Button button = new Button(this);
        button.setText("Add");
        button.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TableRow r = new TableRow(MainActivity.this);

                for (int j = 1; j <= row; j++) {
                    editText = new EditText(MainActivity.this);
                    editText.setTag(editText + String.valueOf(j));
                    editText.setHint("New " + j);
                    editText.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
                    editText.setBackground(null);
                    r.addView(editText);
                }


                int index = (Integer)tableRow.getTag();
                System.out.println(index);
                tableLayout.addView(r,(index+1));

            }
        });
        tableRow.addView(button);
        tableLayout.addView(tableRow);

установите тег для каждой строки таблицы, равный позиции индекса.затем используйте этот тег, чтобы добавить новое представление по этому индексу.(тег + 1), так как вы хотите добавить ниже (рядом) это представление

...