我想使用表达式对象#locale根据上下文语言环境设置th:class属性。
我试过了
th:class="${#locale}=='en'?'active':''"
th:class="${#locale=='en'}?'active':''"
它们都导致错误,但是当我用th:text =" $ {#locale}打印它时,我得到了正确的语言环境代码(en,es)。
如何将#locale对象与区域设置代码进行比较?
答案 0 :(得分:9)
根据answer发布的David_Garcia,我可以这样解决我的问题:
ImageView imageBtnUp = (ImageView) view.findViewById(R.id.imageBtnup);
ImageView imageBtnDown = (ImageView) view.findViewById(R.id.imageBtndown);
imageBtnUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// apply your functionality here for first button
Toast.makeText(mContext, "clicked",Toast.LENGTH_SHORT).show();
}
});
imageBtnDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// apply your functionality here for Down button
Toast.makeText(mContext, "clicked",Toast.LENGTH_SHORT).show();
}
});
答案 1 :(得分:3)
这是我在很久以前告诉过thymeleaf家伙的问题。
在将其与“en”进行比较之前,您需要首先解析#locale
。
您可以在开始时添加2个下划线并结束要首先解析的表达式。在你的情况下将是这样的:
th:call="$({__#locale__}=='en'?'active':'')"
答案 2 :(得分:0)
我喜欢这个
th:text="${#locale.toString()}=='in'?'active':'inactive'"