2011-10-25 3 views
1

이것은 아마도 추측 할만한 아이디어입니다. 하나의 ScrollLayout에 많은 textViews가 있습니다 (그래서 그 중 절반 만 화면에 표시됩니다). 그렇다면 editText가 있고, 사용자가 editText에 쓴 것과 같은 문자열 값을 포함하는 textView로 스크롤 &을 강조하는 방법을 생각하고 있습니다. 예를 들어 :안드로이드에서 TextView의 텍스트 강조하기

editText.text = "Test" 
textView.text = "Testing Issue" 
textView2.text = "Bla Bla" 

내가 해당 텍스트 값 부분/전체 (나던 문제) 텍스트 뷰를 강조하고 싶다.

많은 질문에 미리 감사드립니다. 내 질문이 불충분하다면 :) 안드로이드에 익숙하지 않기 때문에. 사용자가를 입력 한 후 때

textView.setText(HTML.fromHtml("Testing" + "<b>Issue</b>")); 

답변

3

이 경우 ListView를 사용하고 evey 텍스트 세그먼트 .

EditText에 대한 TextWatcher를 지정하면 모든 문자가 입력 된 후에 호출되는 콜백이 있습니다.이 콜백에서 입력 된 문자열을 비동기 적으로 검색하고 행의 위치를 ​​다시 얻습니다 지정된 하위 문자열을 포함하는

이제 ListView를 첫 번째 발생으로 스크롤하려면 .smoothScrollToPosition() 메소드를 사용할 수 있습니다.

하이라이트는 TextView 위젯을 사용하여 행의 텍스트를 볼 수 있습니다. Spanable/Spanned 개체를 받아들이는 .setText()를 사용하여 텍스트 내부에서 본 텍스트를 설정할 수 있습니다. 이것들은 스테로이드의 문자열입니다. 문자열의 다른 영역에 스타일 범위를 지정할 수 있습니다. 예를 들면 다음과 같이 사용할 수 있습니다. 다른 색상/배경/등에서 찾은 하위 문자열을 표시하십시오.

또는 html을 사용하십시오. Html.fromHtml()은 제공된 문자열의 html 태그를 실제로 Spannable 객체로 처리하므로 더 쉽게 작업 할 수 있습니다 :)

+0

감사합니다. – Alone89

2

일부 텍스트를 만들기에 대해 이야기하는 경우 동일한 텍스트 뷰가, 다음, 당신이 특정 텍스트를 굵게 만들 수있는 다른 withing에 나 같은 다른 무언가를 찾습니다 텍스트 및 클릭 제출 일치하는 텍스트가있는 모든 텍스트 상자를 검색하고 스타일 리소스를 적용하여 하이라이트되도록합니다.

0

리소스로 스타일을 만들 :

관련 문제