假设我有一个文本输出,例如“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开发。感谢〜
答案 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");
}
您可以保存多行代码。 希望这有帮助!