0

XML-File에 대한 참조없이 FindByID 대신 데이터 바인딩을 사용하여 일부 단추 이벤트를 구현하려고합니다. 이것이 가능한가? OnKeyListener 내에서 입력 된 텍스트를 가져 오려고 시도하는 바운드 InputBox가 액세스 할 수없는 것처럼 보이는 문제가 있습니다.이 굵은 글꼴은 빨간색으로 표시됩니다. 잘못된 접근입니까, 아니면 실수입니까? FindByID-Lines를 모두 피하고 싶습니다. Android Studio 데이터 바인딩 : onKey 이벤트 내에서 바인딩의 내용에 액세스 할 수 있습니까?

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; 
     } 
    }); 

내가 단순히 다른 방법으로 바인딩을 넣을 때 작동

답변

0

이상하게도 대단히 감사합니다

(...) 
      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()); 
       } 

을 propblem 쉽게 해결되지만 누군가가 대답을 가지고 있다면 어떤 일이 벌어 질지 알고 싶습니다 :)

관련 문제