2016-01-20 30 views
1

假设我有单个文本输出,例如“这是一个EditText”(textToUse)。Android:显示相同的文本输出到多个EditText

我想显示相同的文本输出到非1,但多个EditText字段。

如果我有3个EditText上IDS: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

如果您解决了您的问题,请接受答案。 – FrozenFire

回答

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

或者使用一个数组为您的EditText作为@Huy阮在他的回答一样。

+0

感谢您的回答,它的工作原理:) –

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"); 
} 

可以节省很多行码。 希望得到这个帮助!

+0

非常感谢。但我会使用@FrozenFire答案,因为它更容易实现:) –

+0

不客气!但是当你有太多的EditText时,我的解决方案是最好的,因为你可以保存很多行代码。您应该尝试两种解决方案以了解其工作原理。祝你有个美好的一天! :) – alway5dotcom

相关问题