Слушатель автоматического щелчка в Android - PullRequest
0 голосов
/ 10 июля 2020

мы пытаемся настроить auto clickListener для выполнения автоматического расчета после ввода данных от пользователя. Так же, как в калькуляторе, когда пользователь вводит ввод, и расчет выполняется автоматически. Если я выполняю расчет в tvProcessor (2 + 3 + 2), то после нажатия на кнопку равенства результат отображается в tvResult (7). Возможно ли автоматически запускать прослушиватель кликов, пока я выполняю какие-либо вычисления.

Если мы нажмем (2 + 3), а затем, не нажимая на btnEqual, автоматически получим результат как 5

String processor;
setContentView(R.layout.activity_main);
   
    tvProcessor = (TextView) findViewById(R.id.tv_process);
    tvResult = (TextView) findViewById(R.id.tv_result);
  
    btnTwo = (Button) findViewById(R.id.btn_two);
    btnThree = (Button) findViewById(R.id.btn_three);
    btnPlus = (Button) findViewById(R.id.btn_plus);
    
    btnTwo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {                
            processor = tvProcessor.getText().toString();
            tvProcessor.setText(processor + "2");
        }
    });
    btnThree.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {                
            processor = tvProcessor.getText().toString();
            tvProcessor.setText(processor + "3");
        }
    });

       
    btnPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {                
            processor = tvProcessor.getText().toString();
            tvProcessor.setText(processor + "+");
        }
    });
 
    btnEqual.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {                
            processor = tvProcessor.getText().toString();
            Context rhino = Context.enter();
            rhino.setOptimizationLevel(-1);
            String result = "";

            try{
                Scriptable scope = rhino.initStandardObjects();
                result = rhino.evaluateString(scope, processor, "JavaScript", 1, null).toString();
            }catch (Exception e){
                result = "Error";
            }

            tvResult.setText(result);
        }
    });

1 Ответ

0 голосов
/ 10 июля 2020

Попробуйте это

EditText editText= (EditText) findViewById(R.id.editText); 

editText.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // write your logic
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...