2014-11-15 6 views
0

나는 텍스트 필드를 편집 및 클릭 할 수있게 만들고 싶은 안드로이드 응용 프로그램을 만들고 있습니다. 내 화면에는 여러 개의 TextField 및 EditText가 있습니다. 나는 그것을 편집 할 수있는 TextField를 가지고 있는데, 클릭 가능하게 만들고 싶으면 클릭하고 다른 필드를 편집 가능하게하고 싶습니다. 텍스트 필드 편집을 클릭하지 않고 모든 항목을 사용 가능하게해서는 안됩니다. 내 코드 스 니펫이 아래에 나와 있습니다. 제발 도와주세요.클릭하고 편집 할 수있는 Textfield를 Android에서 만드는 방법은 무엇입니까?

{ 
    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

당신의 EditText에 텍스트 뷰를 변환 할 수 없습니다,하지만 당신은 오히려 당신은 EditText 편집 할 editText.setEnabled(true);을 사용할 수 있습니다

글고

에 대한 setEnabled 속성을 사용할 수 있습니다.

다음과 같이 두 개의 편집 문안이 있다고 가정 해보십시오. 그리고 처음 글고 치기에 데이터를 입력에, 당신은 당신이이 작업을 수행 할 수 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); 
    } 
}); 

희망이 그것을 사용하는 방법 단서를 제공합니다.

편집 :

텍스트 필드, 버튼, 글고 사이에 혼동하지 마십시오.

Android의 경우 읽기 전용 필드는 TextView입니다. 편집 가능한 텍스트 상자는 EditText이고 Button은 일반 버튼입니다.

당신이 말한대로, 버튼을 클릭하면 편집 문구를 편집 할 수 있습니다.

사용이 : 제 생각에는

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

답장을 보내 주셔서 감사합니다. TextText를 만들었습니다. 하나의 TextField를 "EDIT"버튼을 클릭하여 만들고 싶습니다. 다른 EDITFIELDS를 모두 편집 가능하게 만들고 싶습니다. 친절하게 여기 나를 안내. –

+1

답장을 보내 주셔서 감사합니다. 그것은 작동합니다. 내가 EDITTEXTS를 가능하게하고, EDITTEXTS를 다시 활성화시킨 후, 다시 EDIT 버튼을 클릭 한 후에 모든 EDITTEXT를 다시 사용할 수 없도록하는 것과 같이, 논의하고 싶은 마지막 사항.나는이 같은 몇 가지 일을 한 것처럼 –

+1

는 첫 번째 시도에서 그것을 잘 작동하지만, 다시 클릭하면 그냥 "click1"
공공 무효 온 클릭 (보기 V) { \t 경우 (clickCount는 == 0) { \t \t 토스트를 반환합니다. makeText (getApplicationContext(), "click0", Toast.LENGTH_SHORT) .show(); } clickCount = 1; Toast.makeText (getApplicationContext(), "click1", Toast.LENGTH_SHORT) .show(); } –

1

, 당신이 당신의 텍스트 필드를 편집 할 경우, 다음의 더 나은 글고 치기로 이동합니다. 당신이 D 패드를 통해 텍스트 뷰에 액세스 할 수 있습니다, 또는 당신이 초점을 얻을 수 있도록

android:focusableInTouchMode="true" 

추가 할 수

android:editable="true" 

을 설정하면

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

을 다음과 같이 그 이유는 온 터치.

문제는 기존 텍스트를 수정할 수 없으며 커서를 이동할 수 없다는 것입니다. 작성한 텍스트는 기존 텍스트 앞에 추가됩니다.

+1

나는 그 Textfield를 EditText로 만들었습니다. 하나의 TextField를 "EDIT"버튼을 클릭하여 만들고 싶습니다. 다른 EDITFIELDS를 모두 편집 가능하게 만들고 싶습니다. 사실 서버에서 데이터를 얻고 있는데 편집 필드에 표시하고 있으므로 "편집"텍스트 필드를 클릭하면 텍스트 필드를 편집 가능하게 만들고 "편집"을 다시 클릭하면 다시 비활성화해야합니다. 내 데이터를 다시 업데이트하십시오. –

관련 문제