Как вызвать статический метод с привязкой данных? - PullRequest
0 голосов
/ 11 мая 2018

Я хочу вызвать мой метод класса Util в layout.xml файле, например

<TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@{PreferenceUtil.getSavedUser().fullName}"/>

Я импортировал PreferenceUtil

<import type="com.amelio.utils.PreferenceUtil"/>

И PreferenceUtil.class имеет несколько методов.

public class PreferenceUtil {

    public static LoginResponse getSavedUser() {
        SharedPreferences sf = Amelio.getInstance().getSharedPreferences(PREF, Context.MODE_PRIVATE);
        String userJson = sf.getString(PREF_USER_DATA, null);
        if (userJson == null || userJson.equals("")) {
            return null;
        }
        return new Gson().fromJson(userJson, LoginResponse.class);
    }
}

Выпуск

    Found data binding errors.
****/ data binding error ****msg:cannot find method getSavedUser() in class com.amelio.utils.PreferenceUtil
file:D:\Khemraj\_AndroidStudioWorkspace_\amelioFinal\app\src\main\res\layout\activity_cart.xml
loc:94:40 - 94:68
****\ data binding error ****

Возможно ли это, также предложите, если это рекомендуется или нет.

Ответы [ 2 ]

0 голосов
/ 09 января 2019

, если вы еще не нашли ответ:вам нужно импортировать тип объекта и привести его к этому типу так:

<data>
  <import type="com.amelio.utils.PreferenceUtil"/>
  <import type="yourdirectory.LoginResponse"/>

</data>


<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text='@{((LoginResponse)(PreferenceUtil.getSavedUser()).fullName}' />
0 голосов
/ 13 августа 2018

Я надеюсь, что вы, наверное, нашли ответ, если вы все еще боретесь, найдите ответ ниже.

    <data>
      <import type="com.amelio.utils.PreferenceUtil"/>
 </data>


<TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text='@{PreferenceUtil.getSavedUser()}' />

Пожалуйста, убедитесь, что ваш LoginResponse помечен как общедоступный для доступа к значениям.

...