我刚刚开始学习android编程,似乎无法通过点击按钮n次以允许用户创建所选数量(n)的EditText字段,以便每个都可以被唯一标识,即1,2,3 ...,n以及以编程方式访问,来自不同的方法(由不同的按钮单击调用)。我希望这个问题很清楚,因为我并没有真正提供那么多代码。
答案 0 :(得分:1)
做这样的事情
// A list to keep reference to your created edit texts
List<EditText> mEditTexts = new ArrayList<EditText>();
// Get root view of your activity
ViewGroup viewGroup = (ViewGroup) ((ViewGroup)
findViewById(android.R.id.content)).getChildAt(0);
// Get the button and set a click listener to it
Button mButton = (Button) findViewById(R.id.button_id);
mButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
// Build edit text
EditText mEditText = new EditText(v.getContext());
// Pass two args (arg1/arg2); must be LayoutParams.MATCH_PARENT,
// LayoutParams.WRAP_CONTENT, or an integer pixel value.
mEditText.setLayoutParams(new LayoutParams(arg1, arg2));
// Add the edit text to your list
mEditTexts.add(mEditText);
// Add edit text to your root view
viewGroup.addView(mEditText);
}
}
要检查编辑文本字段,您可以从列表中访问它们
for(EditText editText : mEditTexts){
Log.d(TAG, editText.getEditableText().toString());
}
或明确
int specificPosition = (SOME_INT);
EditText specificEditText = mEditTexts.get(specificPosition);
无法对其进行测试,因此可能需要进行一些修改,但它应该是这样的。如果您不想使用viewGroup,也可以直接使用布局。将其修改为类似
的内容LinearLayout mLayout = (LinearLayout) findViewById(R.id.layout_id);
....
mLayout.addView(mEditText);