DataBinding에서 TextView에 입력 필수 태그 추가
4151 단어 AndroidDataBinding
하고 싶은 일
이처럼 태그 옆에 반드시 입력해야 하는 태그*
를 붙이려면 요소가 많으면 번거롭다.
BindingAdapter 사용
Binding Adapter를 사용하면 xml attributes로 쓸 수 있습니다.
DataBinding은 kotlin의 확장 함수로서 기존 View에 동작을 부여할 수 있습니다.
적당한 반에 다음과 같은 static 방법을 미리 적어 두세요.내가 했어 DataBindingAttributeUtil
거기 뒀어.@BindingAdapter("requiredMarkVisible")
public static void requiredMarkVisible(TextView textView, boolean enable) {
String text = textView.getText().toString();
String requiredMark = " " + textView.getContext().getString(R.string.required_mark);
if (enable) {
textView.setText(Html.fromHtml(text + "<font color=\"#e86242\">" + requiredMark + "</font>"));
} else {
String defaultText = text.replace(requiredMark, "");
textView.setText(defaultText);
}
}
xml로 이렇게 쓸 수 있습니다.아니오@{true}
,쓰고 싶은데true
좋은 방법이 있나요?있으면 알고 싶어요.<TextView
...
android:text="@string/name"
app:requiredMarkVisible="@{true}"/>
보태다
그나저나 왜 false
때 일부러 text.replace(requiredMark, "")
일까? 상태에 따라 동적 변화가 필요한지 여부가 달라지기 때문이다.
예를 들어 아래와 같은viewModel의 상태가 바뀌면requiredMarkVisible
도 변경을 원할 때다.<TextView
...
android:text="@string/name"
app:requiredMarkVisible="@{viewModel.isNameRequired}"/>
감상
xml에string%1$s
을 설정할 수 있는 일반적인 Binding Adapter를 만드는 것이 좋을 수도 있습니다.며칠 후에 한번 해볼게요.
그게 다야.
Reference
이 문제에 관하여(DataBinding에서 TextView에 입력 필수 태그 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/konifar/items/62db5385925e19fb5211
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Binding Adapter를 사용하면 xml attributes로 쓸 수 있습니다.
DataBinding은 kotlin의 확장 함수로서 기존 View에 동작을 부여할 수 있습니다.
적당한 반에 다음과 같은 static 방법을 미리 적어 두세요.내가 했어
DataBindingAttributeUtil
거기 뒀어.@BindingAdapter("requiredMarkVisible")
public static void requiredMarkVisible(TextView textView, boolean enable) {
String text = textView.getText().toString();
String requiredMark = " " + textView.getContext().getString(R.string.required_mark);
if (enable) {
textView.setText(Html.fromHtml(text + "<font color=\"#e86242\">" + requiredMark + "</font>"));
} else {
String defaultText = text.replace(requiredMark, "");
textView.setText(defaultText);
}
}
xml로 이렇게 쓸 수 있습니다.아니오@{true}
,쓰고 싶은데true
좋은 방법이 있나요?있으면 알고 싶어요.<TextView
...
android:text="@string/name"
app:requiredMarkVisible="@{true}"/>
보태다
그나저나 왜 false
때 일부러 text.replace(requiredMark, "")
일까? 상태에 따라 동적 변화가 필요한지 여부가 달라지기 때문이다.
예를 들어 아래와 같은viewModel의 상태가 바뀌면requiredMarkVisible
도 변경을 원할 때다.<TextView
...
android:text="@string/name"
app:requiredMarkVisible="@{viewModel.isNameRequired}"/>
감상
xml에string%1$s
을 설정할 수 있는 일반적인 Binding Adapter를 만드는 것이 좋을 수도 있습니다.며칠 후에 한번 해볼게요.
그게 다야.
Reference
이 문제에 관하여(DataBinding에서 TextView에 입력 필수 태그 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/konifar/items/62db5385925e19fb5211
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<TextView
...
android:text="@string/name"
app:requiredMarkVisible="@{viewModel.isNameRequired}"/>
xml에string
%1$s
을 설정할 수 있는 일반적인 Binding Adapter를 만드는 것이 좋을 수도 있습니다.며칠 후에 한번 해볼게요.그게 다야.
Reference
이 문제에 관하여(DataBinding에서 TextView에 입력 필수 태그 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/konifar/items/62db5385925e19fb5211텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)