Android:向多个EditText显示相同的文本输出

时间:2016-01-20 02:32:08

标签: android xml android-studio android-edittext

假设我有一个文本输出,例如“This is a EditText”(textToUse)。

我想将这个相同的文本输出显示为非1,而是显示多个EditText字段。

如果我有3个EditText ID:edit1,edit2和edit3

而不是仅使用:

private EditText mEditText;
private String textToUse;

mEditText = (EditText)findViewById(R.id.edit1);
mEditText.setText(textToUse);

只显示输出到EditText“edit1”的文本,如何更改代码以使其显示在“edit2”和“edit3”上?

我试过了:

mEditText = (EditText)findViewById(R.id.edit1);
mEditText = (EditText)findViewById(R.id.edit2);
mEditText = (EditText)findViewById(R.id.edit3);

mEditText = (EditText)findViewById(R.id.edit1, R.id.edit2, R.id.edit3);

mEditText = (EditText)findViewById(R.id.edit1, edit2, edit3);

但它们都不起作用。 如果这是一个愚蠢的问题我很抱歉,我刚开始Android开发。感谢〜

2 个答案:

答案 0 :(得分:1)

您需要在代码上声明三个不同的EditText,非数组对象只能包含一(1)个值。所以:

mEditText = (EditText)findViewById(R.id.edit1);
mEditText = (EditText)findViewById(R.id.edit2);
mEditText = (EditText)findViewById(R.id.edit3);

将简单地覆盖其值。 (在上面的代码中,mEditText只保存R.id.edit3)

尝试

mEditText1 = (EditText)findViewById(R.id.edit1);
mEditText2 = (EditText)findViewById(R.id.edit2);
mEditText3 = (EditText)findViewById(R.id.edit3);
mEditText1.setText(textToUse);
mEditText2.setText(textToUse);
mEditText3.setText(textToUse);

或者像@Huy Nguyen在答案中那样使用EditText数组。

答案 1 :(得分:1)

如果你有很多EditText,你可以尝试创建一个EditText数组,每个EditText的ID数组。

前:

EditText []et;
int []idEt = {R.id.et1, R.id.et2, R.id.et3.....};

然后使用循环语句做任何事情.. 例如:

for(int i=0; i<numberOfEditText; i++){
   et[i] = (EditText)findViewById(idEt[i]);
}

...

for(int i=0; i<numberOfEditText; i++){
   et[i].setText("abcdefghi");
}

您可以保存多行代码。 希望这有帮助!