我试图实现一些按钮事件,而不引用XML-File和数据绑定而不是FindByID。这可能吗?我遇到的问题是,在OnKeyListener中,我尝试获取键入文本的绑定InputBox似乎无法访问(this.binding显示为红色,我把它加粗)。这是错误的做法还是我犯了错误?我想避免使用FindByID-Lines。
this.binding =
DataBindingUtil.setContentView(this, R.layout.content_main);
this.binding.EditNumber.setText("553");
this.binding.EditNumber.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
Cat supertest = Manager.CreateMainCat(this.**binding**.EditNumber.toString());
this.**binding**.DisplayCurrentBudget.setText(supertest.getsName());
return true;
default:
break;
}
}
return false;
}
});
非常感谢你
奇怪的是,当我将绑定放在另一个方法中时,它可以工作:
(...)
this.binding.Submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
xxx();
}
});
}
public void xxx()
{
Cat supertest = Manager.CreateMainCat(this.binding.EditNumber.getText().toString());
this.binding.DisplayCurrentBudget.setText(supertest.getsName());
}
但这不是:
this.binding.Submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cat supertest = Manager.CreateMainCat(this.binding.EditNumber.getText().toString());
this.binding.DisplayCurrentBudget.setText(supertest.getsName());
}
问题很容易解决,但如果有人有答案,我会非常有兴趣知道会发生什么事:)