layout.xml
ファイルのUtilクラスメソッドを次のように呼び出したい
<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 ****
これも可能ですか、これが推奨されるかどうかも提案します。
それでも苦労している場合に備えて、答えを見つけたに違いないことを願っています。次に答えを見つけてください。
<data>
<import type="com.amelio.utils.PreferenceUtil"/>
</data>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text='@{PreferenceUtil.getSavedUser()}' />
値にアクセスするには、LoginResponseがパブリックとしてマークされていることを確認してください。
まだ答えが見つからない場合:
オブジェクトタイプをインポートして、次のようにそのタイプにキャストする必要があります。
<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}' />