2016-09-06 81 views
1

我試圖通過使用監聽意見onFocusChange功能結合,但出現以下錯誤通意見OnFocusChange數據綁定的Android

回調android.view.View.OnFocusChangeListener#onFocusChange有2種方法,但lambda定義爲1.它應該有0或相等數量的參數。

請有人可以幫助我找到正確的方式來實現這一點。

<variable 
     name="user" 
     type="com.webage.www.vco_address.User" /> 

    <variable 
     name="obj" 
     type="com.webage.www.colin.Validations" /> 



</data> 
    <EditText 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="82dp" 
     android:text="@={user.name}" 
     android:onFocusChange="@{(view)->obj.saveClick(view, user.name)}" /> 

驗證

public class Validations { 
    public void saveClick(View view, String name){ 
     Log.v("saveClick",name); 
    } 
} 
+1

請張貼'saveClick()的代碼'。 –

+0

什麼是'obj'的''聲明? (編輯您的問題。不要發表評論的這個信息。) –

+0

請讓我知道我在這裏做錯了什麼。 – Colin11

回答

4

我認爲,該錯誤信息不正確的措辭。它沒有任何意義的是onFocusChange()有兩個方法,因爲它的方法。更可能的,問題是,onFocusChange()有兩個參數,一個Viewboolean。你已經聲明lambda只有一個參數。只需向lambda添加第二個參數即可。

+0

當我傳遞一個布爾值時,我無法獲取user.name的值。請你能解釋一下如何獲取user.name的值。 – Colin11

+0

@ Colin11 lambda需要**接受**一個布爾值。您可以修改'saveClick()'來獲取三個參數或忽略布爾值。 –

+0

謝謝!它的工作:) – Colin11