Android添加n个文本字段

时间:2014-09-30 19:08:39

标签: java android

我刚刚开始学习android编程,似乎无法通过点击按钮n次以允许用户创建所选数量(n)的EditText字段,以便每个都可以被唯一标识,即1,2,3 ...,n以及以编程方式访问,来自不同的方法(由不同的按钮单击调用)。我希望这个问题很清楚,因为我并没有真正提供那么多代码。

1 个答案:

答案 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);