0

嗨,我想獲得編輯文本,當前焦點在按鈕點擊,有任何按鈕來做到這一點。如何在android中關注edittext?

或者如果活動中有許多編輯文本,就有辦法確定哪個edittext最後被修改過。

請建議我使用可用的鏈接或示例代碼。

回答

1

我採取線性佈局,並添加自定義EditText到它。

LayoutInflater li = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 
    for(int i = 0; i < 3; i++) { 
     View v = li.inflate(R.layout.addit, null); 
     final EditText e = (EditText) v.findViewById(R.id.e1); 
     e.addTextChangedListener(new TextWatcher() { 

      public void afterTextChanged(Editable s) { 
       // TODO Auto-generated method stub 

      } 

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

      } 

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

       System.out.println("--change--"); 
       mEditText = e; 
       System.out.println(e.getText().toString()); 
      } 

     }); 
     edit_ll.addView(v); 
    } 

這裏mEditText是一個全局變量。

您活動中的任何地方都可以訪問它。並且可以獲取您寫入的最後一個editText。

+0

謝謝,很好的例子。 – 2012-01-31 12:25:35

0

您可以將textWatcher添加到所有EditTexts:

private class CustomTextWatcher implements TextWatcher { 
    private EditText mEditText; 

    public CustomTextWatcher(EditText e) { 
     mEditText = e; 
    } 

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

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
    } 

    public void afterTextChanged(Editable s) { 
    } 
} 

,並可以有你的類的全局變量包含EDITTEXT參考,正在編輯。

+0

請建議我如何添加您的CustomerTextWatcher來編輯文本最終EditText tv = new EditText(getContext()); – 2012-01-31 11:55:02

+0

謝謝,爲我工作。 – 2012-01-31 12:25:57