2011-03-29 2 views
3

EditText에서 접두어로 회색 텍스트를 사용하는 방법을 찾고 있습니다. 이 텍스트는 선택해서는 안됩니다. Gmail로 메시지를 작성할 때받는 사람 필드와 약간 비슷합니다. 유일한 (시각적 인) 차이는 입력을 시작하면이 텍스트가 사라진다는 점입니다.선택이 불가능한 그레이 아웃 프리픽스가있는 EditText

Android에서이를 달성하기위한 트릭이 있습니까?

감사합니다.

+0

는'안드로이드입니다 : 드로어 블은 글고 내에서 사용할 수있는

Drawable editTextDrawable = context.getResources().getDrawable(imageId); editTextDrawable.setBounds(0, 0, editTextDrawable.getIntrinsicWidth(), editTextDrawable.getIntrinsicHeight()); 

다음과 같이 코드를 따라 당신이 필요로하는 것은 약간의 연구가 필요합니다. –

+0

고마워요! 내 상황에서는 이미 필드에 텍스트가 있습니다. EUR 부분이 읽기 전용이거나 선택할 수없는 "EUR 2500"과 같습니다. – 321X

답변

0

궁극적 인 해결책으로 전체 EditText 클래스를 확장하고 사용자가 설정 한 사용자 정의 배경 및 미리 정의 된 패딩 세트를 사용자가 직접 수정하는 방식으로 수정할 수 있습니다.

EUR를 배경으로두고 왼쪽에 배치 한 다음 사용자가 입력하는 텍스트가 EUR 텍스트 바로 다음에서 시작되도록 EditText의 시작 패딩을 지정하십시오.

이것은이 문제에 대한 과잉 공격 또는 가난한 사람의 해결책으로 간주 될 수 있지만 여전히 궁극적 인 옵션입니다. 어쩌면 가장 똑똑한 사람은 아닐지도 모르겠지만 확실하게 작동하는지는 알 수 없습니다. P

모두 최고!

+0

예, 이것 역시 제가 마음에 두었던 것입니다.하지만 저는 처음 Android 개발자이기 때문에 그러한 사용자 정의 배경을 설정하는 방법을 알지 못합니다. 나는 봤지만 그것을 찾기가 어렵다. 어떤 힌트? – 321X

+0

클래스를 만들고 클래스 'EditText'를 확장 시키십시오. http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/EditText.java에서 'EditText' 소스를 읽고 찾으십시오. 당신이 재정의해야 할 방법은 무엇입니까? EditText를 만들 때이 클래스를 참조하고이 클래스의 객체를 만든 다음 사용합니다. 힘들지는 모르지만 확실히 재미있을 것입니다! –

+0

보기에 맞지 않는 텍스트를 입력하면 스크롤되지 않기 때문에 배경으로 넣는 것은 올바르게 작동하지 않습니다. – Timmmm

4

"EUR 2500"이미지를 사용할 수 있습니다. 이 부분의 나머지 부분에 영향을주지 않고 편집 상자에 표시 할 수 있습니다. `그 할-수있어 "을"= 힌트 :하지만, Gmail 애플리케이션이하고있는 어떤

editTxtItemName.setCompoundDrawables(, 
      ListViewConstants.editTextDrawable, null, null, null); 
+0

감사합니다. 나는 이것을 염두에 둘 것이다! – 321X

+1

안녕하세요, 레이아웃에 edittext 속성 (예 : android : drawableLeft)을 사용할 수도 있습니다. –