我正在开发一个Android项目,我有一个我想要显示的设备列表,这要归功于基础适配器。每个设备都有一个亮度级别,我想用搜索栏修改。 我试图用这样的标签识别设备搜索栏:
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:max="100"
android:tag="@{Integer.toString(ampoule.idx)}" />
这是我的安瓿对象:
private String Type ;
private int LevelInt;
private String hueColor;
private String Name;
private int idx;
和绑定:
<data>
<variable
name="ampoule"
type="com.example.****.***.containers.LightDevice"
/>
</data>
现在,当我尝试获取baseadapter的标记以获取Object时,我收到以下错误:
FATAL EXCEPTION: main
Process: com.example.***.***, PID: 9057
java.lang.NumberFormatException: Invalid int: "binding_4"
这是我得到标签的地方:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
setDimmableLevel(seekBar.getTag().toString(),progress);
}
private void setDimmableLevel(String idx, final int progress) {
Map<String, String> queryParams = new HashMap<>();
Log.d("TAG", "valeur idx : "+idx);
final LightDevice light = LightList.getInstance().getLight(Integer.parseInt(idx));
错误是我的标签值是binding_4而不是apoule.idx值......
我该怎么办?
谢谢
答案 0 :(得分:0)
请试试这个,我认为它的类型转换相关问题,希望它的作品。
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:max="100"
android:tag="@{String.valueof(ampoule.idx)}" />
答案 1 :(得分:0)
我想你忘记了绑定步骤了。绑定后,应正确设置View标签。如果您已创建绑定,则可能需要调用 var guess = document.body.onkeypress = function(event){
console.log(event);
document.getElementById("change").innerHTML =
String.fromCharCode(event.keyCode);
var letter = document.getElementById('change');
if(letter.innerHTML==="h"){
console.log('hi');
} else {
console.log("nothing");
}
};
以在下一行之前初始化标记值。否则,它会延迟到下一帧,以允许在更新视图之前累积绑定值更改。
对于活动,您应该像这样膨胀布局:
binding.executePendingBindings()
如果从其他位置对其进行充气,则可以使用静态充气器。例如,来自片段:
@Override
public void onCreate(...) {
super.onCreate(...);
MyLayoutBinding binding = DataBindingUtil.setContentView(this, R.layout.my_layout);
binding.setAmpoule(new LightDevice());
}