2016-01-20 57 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

相關問題