有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在运行时动态添加和删除编辑文本来创建布局

我正在开发一个调查应用程序,我需要知道如何创建一个布局,让用户为一个问题输入多个答案,一旦他键入第一个文本,那么下一个文本应该在第一个文本下面动态生成

另外,如何使编辑文本可移动

像这样的布局:enter image description here


共 (3) 个答案

  1. # 1 楼答案

    只需创建一个新的编辑文本(视图),并将其添加到您的布局中的首选位置

    LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayoutDecisions);
    
    EditText editText = new EditText(this);
    
    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    
    editText.setLayoutParams(p);
    
    linearLayout.addView(editText);
    
  2. # 2 楼答案

    此代码将帮助您

    主要活动。xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/parentLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <Button
            android:id="@+id/buttonView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Create Edit Text" >
        </Button>
    </LinearLayout>
    

    主要活动。java

    import android.app.Activity;
    import android.os.Bundle;
    import android.text.InputFilter;
    import android.text.InputType;
    import android.util.TypedValue;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;
    public class MainActivity extends Activity {
        private Button buttonView;
        private LinearLayout parentLayout;
        private int hint=0;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            buttonView=(Button)findViewById(R.id.buttonView);
            parentLayout = (LinearLayout)findViewById(R.id.parentLayout);
            buttonView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    createEditTextView();
                }
            });
        }
        protected void createEditTextView() {
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams (
                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            params.setMargins(0,10,0,10);
            EditText edittTxt = new EditText(this);
            int maxLength = 5;
            hint++;
            edittTxt.setHint("editText"+hint);
            edittTxt.setLayoutParams(params);
            // edtTxt.setBackgroundColor(Color.WHITE);
            edittTxt.setInputType(InputType.TYPE_CLASS_TEXT);
            edittTxt.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
            edittTxt.setId(hint);
            InputFilter[] fArray = new InputFilter[1];
            fArray[0] = new InputFilter.LengthFilter(maxLength);
            edittTxt.setFilters(fArray);
            parentLayout.addView(edittTxt);
        }
    }
    
  3. # 3 楼答案

    使用TableLayout和TableRow。您可以非常轻松地动态添加和删除

    This可能是一个很好的起点