当用户点击进入每个edittext时动态复制视图

时间:2014-01-12 03:01:31

标签: android android-layout

我正在尝试使用动态布局创建活动。该活动首先加载一个表格布局,其中一个表格行包含一个复选框和一个edittext。我正在尝试设置活动,以便一旦用户将一些文本插入到edittext中并点击键盘上的输入,就会在原始下方生成带有复选框和edittext的相同表格行,以便用户可以创建一个列表项目。我还希望每个edittext都是多行或最多5行。当用户点击进入时我能够生成一行但是我无法弄清楚如何继续生成额外的行,因为imeoption进入条件会以某种方式转移到生成的下一个edittext上,而不是保留在原始的edittext上。我还尝试将lines属性设置为5,将textmultiline的text属性设置为但当我出于某种原因测试edittext字段时,文本仍保留在一行上。我还想知道是否有人可以告诉我如何存储已创建的sql数据库中生成的所有复选框和edittexts。

活动类:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_note_editor);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    Intent intent = this.getIntent();

    final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final TableLayout tb = (TableLayout) inflater.inflate(R.layout.list_note_editor, null);
    EditText et = (EditText) findViewById(R.id.editText1);

    et.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            boolean handled = false;
                if (actionId == EditorInfo.IME_ACTION_NEXT) {
                    TableRow rowView = (TableRow) inflater.inflate(R.layout.list_view_note, null);
                    tb.addView(rowView);
                    setContentView(tb);
                    handled = true;
                }
                return handled;

        }


    });


}

list_note_editor xml(带有初始行的表格布局):

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TableLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left" >

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:imeOptions="actionNext"
            android:inputType="text"
            android:lines="5" >

            <requestFocus />
        </EditText>
    </TableRow>

</TableLayout>

list_view_note xml(当用户点击键盘输入时,我希望复制视图):

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TableRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:imeOptions="actionNext"
        android:inputType="text"
        android:lines="5" >

        <requestFocus />
    </EditText>

</TableRow>

谢谢。

1 个答案:

答案 0 :(得分:0)

据我所知,您可能需要这篇文章Layout Change Animation。只需在您的应用上使用它,并使用
制作活动布局动画  <LinearLayout android:id="@+id/container" android:animateLayoutChanges="true" ... />

希望有用:)