2012-10-05 116 views
3

如何在android中使用softkeyboard彈出框鍵入兩個edittext框。同時輸入兩個edittext字段

如果我在一個框中鍵入例如單詞「cat」,則它會在另一個框中顯示。

如果不能這樣做,那麼有沒有辦法顯示在屏幕上其他地方輸入框中的每個字母?

+0

它下雨答案:) –

回答

6

嘗試TextWatcher像這樣爲你一個EditText上

firstedittext.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      secondedittext.setText(firstedittext.getText() + ""); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) {     
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 
    }); 

希望幫助

編輯

加入您的活動這些行,你有你的其他進口

import android.text.Editable; 
import android.text.TextWatcher; 
+0

謝謝,但我得到的textwatcher錯誤「類型新的textwatcher(){}必須實現繼承抽象方法Textwatcher.afterTextchanged(可編輯)」和「可編輯無法解析鍵入」 請幫助我 – C0dexe

+1

@ C0dexe查看更新回答 –

+0

謝謝Deepak我遇到了另外一個問題,雖然我在底部有一個編輯文本,而我在頂部輸入了主文本,問題是我有一個scrollview xml,當我鍵入它自動從屏幕底部滾動到頂部,我不希望這樣做,我試圖從頂部移除焦點,但這意味着我無法鍵入到該框,移除焦點確實會阻止autoscroll,你知道我能阻止自己在代碼中發生的自動滾動嗎? – C0dexe

2

爲您的EditTexts實施TextWatcher。現在在它裏面,獲取Editable並將其設置爲其他EditText

EditText edit1=new EditText(this); 
    EditText edit2=new EditText(this); 

    edit1.addTextChangedListener(new TextWatcher() { 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      edit2.setText(s); 

     } 

     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     public void afterTextChanged(Editable s) { 


     } 
    }); 
+0

這裏的每一次新的角色將取代之前的一個。只需檢查它 –

+0

當用戶時間新字符,它將只替換舊的 – Androyds

+0

謝謝,但我得到的textwatcher錯誤「類型新的textwatcher(){}必須實現繼承的抽象方法Textwatcher.afterTextchanged(可編輯)」和「可編輯無法解析鍵入」 請幫我 – C0dexe

1

使用textwatcher作爲編輯文本。在這裏你可以實現當你在一個EditText上輸入數據,那麼其他的編輯文本也充滿了角色,你是在一個EditText上進入

EditText et1 = (EditText)findViewById(R.id.edit01); 
EditText et2 = (EditText)findViewById(R.id.edit02);  
et1.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     et2.setText(et1.getText().toString()); 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) {     
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
    } 
}); 
+0

哈哈你讓我第一個 – Androyds

+0

謝謝,但我在textwatcher錯誤「類型新的textwatcher (){}必須實現繼承的抽象方法Textwatcher.afterTextchanged(可編輯)「和」可編輯不能解析爲鍵入「 請幫助我 – C0dexe

+0

嘗試[this](http://stackoverflow.com/questions/5225731/the型-主必須實施的最繼承抽象-方法-textwatcher-beforete) –

0

使用TextWatcher和裏面使用EditText2.setText()

0

這是我的邏輯:

首先要在第一EDITTEXT添加文本守望在那裏你會typein

OnCreate 
et1= (EditText)findViewById(R.id.et1); 
et2= (EditText)findViewById(R.id.et2); 
et1.addTextChangedListener(addTextWatcher); 
//now you need to add this 


TextWatcher addTextWatcher = new TextWatcher() { 
    public void beforeTextChanged(CharSequence s, int start, int count,int after) { 

    } 
    public void onTextChanged(CharSequence s, int start, int before,int count) { 
     NewString= et1.getText().length(); 
    et2.settext(NewString); 

    } 
    public void afterTextChanged(Editable arg0) { 

    } 
     }; 

    public void afterTextChanged(Editable arg0) { 
    }