2017-07-25 16 views
3

我正在研究一个调查应用程序,并且我需要知道如何创建一个让用户输入多个问题答案的布局,一旦他键入第一个文本,那么下一个文本应该在第一个文本之下动态生成。如何在运行时动态添加和删除编辑文本来创建布局

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

像这样的布局:enter image description here

+0

您可能必须使用'ListView'或'RecyclerView',因为视图编号没有被定义,如果在NMB / –

回答

0

使用TableLayout和的TableRow。您可以非常容易地动态添加和删除。

This可能是一个很好的起点

0

此代码将帮助您

activity_main.xml中

​​

MainActivity.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); 
    } 
} 
1

只需创建一个新的EditText(查看)并将其添加到您的布局在首选位置。

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); 
相关问题