2014-11-15 75 views
0

我正在開發Android應用程序,在其中我想讓我的文本框可編輯和可點擊。它在我的屏幕上有多個TextFields和EditTexts。我有「編輯」TextField,我想讓它可點擊,點擊後我想讓其他字段可編輯並啓用。如果不點擊編輯文本框,則不應啓用它們。我的代碼片段如下,請幫我解決這個問題。如何在android中創建可點擊和可編輯的Textfield?

{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_user_profile); 

    fName = (TextView) findViewById(R.id.fnametxt); 
    lName = (TextView) findViewById(R.id.lastnameTxt); 
    mailText = (TextView) findViewById(R.id.mailTxt); 
    mobileText = (TextView) findViewById(R.id.mobileTxt); 
    dobText = (TextView) findViewById(R.id.dobTxt); 

    fName.setText(currentUserFirstName); 
    lName.setText(currentUserLastName); 
    dobText.setText(""); 
    mobileText.setText(currentUserContactNumber); 
    mailText.setText(currentUserEmail); 
} 

在此先感謝!

+0

http://stackoverflow.com/a/9976671/2274724 –

回答

3

您不能轉換的TextView到EditText上,但可以寧願使用setEnabled屬性的EditText

您可以使用editText.setEnabled(true);,使EditText編輯。

假設你有兩個edittext如下。而在第一EditText上輸入數據,您需要edittext2編輯,那麼你可以這樣做:

EditText edittext1, edittext2; 
//findViewByIds for both views 

editText1.addTextChangedListener(new TextWatcher() { 

    public void onTextChanged(CharSequence s, int start, 
     int before, int count) { 
     if(s.length() != 0) 
      editText2.setEnabled(true); 
     else 
      editText2.setEnabled(false); 
    } 
}); 

希望這給一個線索如何使用它。

編輯:

不要文本字段,按鈕之間的EditText弄糊塗。

在Android中,簡單的只讀字段是TextView。可編輯的文本框稱爲EditText,Button是純粹的Button。

因此,根據您的意思,您希望在單擊按鈕時可以編輯EditTexts。

使用此:

EditText edittext1, edittext2; 
Button button; 
//findViewByIds for all views. 
buton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     editText1.setEnabled(true); 
     editText2.setEnabled(true); 
    } 
}); 
+2

感謝您的回覆。我已經將Textfield設置爲EditText。我想讓一個TextField「編輯」點擊那個按鈕,我想讓所有其他EDITFIELDS可編輯。請在這裏指導我。 –

+1

非常感謝你的回答。有用。最後我想討論的事情,就像我按EDIT按鈕它使EDITTEXTS,再次單擊編輯按鈕後,它應該禁用每個edittexts再次。 –

+1

像我有做過這樣的事情一些,在第一次嘗試它工作正常,但再次點擊後它只是返回「CLICK1」
公共無效的onClick(視圖v){ \t如果(的clickCount == 0){ \t \t吐司。 makeText(getApplicationContext(),「click0」,Toast.LENGTH_SHORT).show(); } clickCount = 1; Toast.makeText(getApplicationContext(),「click1」,Toast.LENGTH_SHORT).show(); } –

1

在我看來,如果你想編輯您的文本框,然後它能夠​​更好地去的EditText。其原因如下:

The TextView's editable param does make it editable (with some restrictions). 

如果設置

android:editable="true" 

您可以通過d-PAD接入TextView的,或者你可以添加

android:focusableInTouchMode="true" 

能夠獲得焦點觸摸。

問題是你不能修改現有的文本,你不能移動光標。你寫的文本只是在現有文本之前添加的。

+1

我已將該Textfield設置爲EditText。我想讓一個TextField「編輯」點擊那個按鈕,我想讓所有其他EDITFIELDS可編輯。其實我從服務器獲取一些數據,我正在顯示它在我的editfields,所以想法是,如果我點擊「編輯」TextField然後它會使textfields可編輯和單擊「編輯」後,它應該再次禁用,我應該再次更新我的數據。 –

相關問題