Android 2 웨이 데이터 바인딩 라이브러리의 양방향 데이터 바인딩 기능을 사용하려고합니다. 내가 바인딩이 방법은 데이터에 대한 @={}
형식을 사용하는 경우가 Android 데이터 바인딩 : 두 데이터 바인딩에 @ = {} 구문을 사용하면 바인딩 파일이 생성되지 않습니다.
<EditText
android:id="@+id/text_view_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:gravity="center"
android:hint="Enter Username"
android:inputType="text"
android:text="@{model.username}"
/>
작동 바인딩 간단한에 대한 라이브러리를 사용하는 것이
작동 나던 때
내 Gradle을 버전
dependencies {
classpath 'com.android.tools.build:gradle:2.2.1'
}
입니다
<EditText
android:id="@+id/text_view_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="20dp"
android:gravity="center"
android:hint="Enter Username"
android:inputType="text"
android:text="@={model.username}"
/>
작동하지 않습니다. 다음 오류가 발생합니다.
Error:(9, 31) error: package databinding does not exist
기본적으로 데이터 바인딩 클래스는 생성되지 않습니다. 제발 도와주세요 다른 정보가 필요하면 알려주세요.
public class Login implements IBaseModel {
public String username, password;
public Login(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return this.username;
}
public String getPassword() {
return this.password;
}
}
와 뷰 모델 클래스 내 의견에서
public class LoginViewModel implements IViewModel {
private Subscription subscription;
private ILoginDataListener dataListener;
private Login login;
Context context;
String getUserName() {
return this.login.getUsername();
}
LoginViewModel(Context ctx, Login login) {
this.context = ctx;
this.login = login;
}
public void onClickSubmit(View view) {
Toast.makeText(context, "From View Model username is " + this.login.getUsername() + " the password " + this.login.getPassword(), Toast.LENGTH_SHORT).show();
Toast.makeText(context, "From View Model", Toast.LENGTH_SHORT).show();
loginRequest("Rajendra", "12345");
}
public void updateValue(View view) {
this.login.password = "dummy";
this.login.username = "simplefool";
}
@Override
public void destroy() {
if (subscription != null && !subscription.isUnsubscribed()) subscription.unsubscribe();
subscription = null;
context = null;
dataListener = null;
}
}
는 모델 클래스 –
을 게시 추가합니다. 저에게 알려주세요. 현재 안드로이드 스튜디오는 2.2.1이며, 그레이 버전은 다음과 같습니다 : gradle : 2.2.1 androidBuildToolsVersion = '24 .0.1 ' –
public class Login implements IBaseModel { public String username, password; 공개 로그인 (문자열 사용자 이름, 문자열 암호) { this.username = username; this.password = password; } public String getUsername() { return this.username; } public String getPassword() { return this.password; } } –