像Google Keep一样动态创建edittext视图

时间:2014-11-29 09:35:50

标签: android

我正在尝试创建动态生成的EditText视图,例如Google Keep应用,因此当用户开始在一个编辑文本视图中输入文本时,会在其下方生成一个新的空白视图。

我设置了一个带有适配器的RecyclerView,该适配器将包含编辑文本视图。

最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

执行此操作的最佳方法是使用TextView并在textView下方具有列表视图。

每次用户在TextView上输入内容并按下save时,将新条目添加到用于填充ListView的arrayList中。然后刷新ListView。这应该够了吧。

答案 1 :(得分:1)

在您的MainActivity.java中:

package com.junglesofts.strsend;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {

    public int i = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TableLayout ll = (TableLayout) findViewById(R.id.tblMain);
        View mTableRow = null;
        mTableRow = (TableRow) View.inflate(getApplicationContext(), R.layout.mrowrayout, null);
        EditText txtNew = (EditText)mTableRow.findViewById(R.id.txtNew);
        txtNew.setId(i);
        txtNew.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                ++i;
                TableLayout ll = (TableLayout) findViewById(R.id.tblMain);
                View mTableRow = null;
                mTableRow = (TableRow) View.inflate(getApplicationContext(), R.layout.mrowrayout, null);
                EditText txtNew = (EditText)mTableRow.findViewById(R.id.txtNew);
                txtNew.setId(i);
                txtNew.setOnClickListener(this);
                mTableRow.setTag(i);
                ll.addView(mTableRow);
            }
        });

        mTableRow.setTag(i);
        ll.addView(mTableRow);
    }
}

在您的activity_main.xml中:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tblMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.junglesofts.strsend.MainActivity">



</TableLayout>

在布局文件夹中,创建一个新布局并将其重命名为mrowrayout.xml并在其中:

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayoutRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText android:id="@+id/txtNew"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter your text!"/>

</TableRow>

我测试了它,它适用于我。