我正在研究一个调查应用程序,并且我需要知道如何创建一个让用户输入多个问题答案的布局,一旦他键入第一个文本,那么下一个文本应该在第一个文本之下动态生成。如何在运行时动态添加和删除编辑文本来创建布局
另外,如何使编辑文本可移除?
我正在研究一个调查应用程序,并且我需要知道如何创建一个让用户输入多个问题答案的布局,一旦他键入第一个文本,那么下一个文本应该在第一个文本之下动态生成。如何在运行时动态添加和删除编辑文本来创建布局
另外,如何使编辑文本可移除?
使用TableLayout和的TableRow。您可以非常容易地动态添加和删除。
This可能是一个很好的起点
此代码将帮助您
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);
}
}
只需创建一个新的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);
您可能必须使用'ListView'或'RecyclerView',因为视图编号没有被定义,如果在NMB / –