У меня есть Button
, который всякий раз, когда пользователь нажимает на него, увеличивает число в моем EditText
, но я хочу иметь метод onTouch, который, когда пользователь держит палец на кнопке, число увеличивается с большей скоростью (непрерывно), что-то вроде назад, что когда вы щелкаете по нему, он удаляет только одну букву, а когда вы держите его нажатым, он удаляет слова быстрее, поэтому в моем коде есть и ontouch, и onclick, но всякий раз, когда я нажимаю кнопку, срабатывает только onTouch, что мне делать? делать? кто-нибудь может помочь, пожалуйста? Я много искал, но не смог найти ничего, что мне помогло бы
Вот часть моего кода
btnFineUp.setOnTouchListener (this);
btnFineUp.setOnClickListener (this);
@override
public void onClick (View view)
{
switch (view.getId ())
{
case R.id.btn_fine_up:
{
View v = findViewById (getCurrentFocus ().getId ());
EditText editText;
if (v instanceof EditText)
{
editText = (EditText) v;
}
else
{
return;
}
int calcStateAmp = +1;
if (view.getId () == R.id.btn_fine_up)
{
calcState_2 = upAndDown.getFineUpAmp () * calcStateAmp;
calcStateAmp = calcState_2;
}
double currentValue;
if (StringUtils.isNullOrEmpty (editText.getText ().toString ()))
{
currentValue = 0;
}
else
{
currentValue = Double.parseDouble (editText.getText ().toString ());
}
switch (getCurrentFocus ().getId ())
{
case R.id.txt_va1_a:
case R.id.txt_va2_a:
case R.id.txt_va3_a:
case R.id.txt_vb1_a:
editText.setText (String.format (Locale.ENGLISH, "%.2f", currentValue + (0.01 * calcStateAmp)));
break;
}
@Override
public boolean onTouch (View view, MotionEvent motionEvent)
{
switch (view.getId ())
{
case ir.vebko.R.id.btn_fine_up:
{
View v = findViewById (getCurrentFocus ().getId ());
EditText editText;
if (v instanceof EditText)
{
editText = (EditText) v;
}
else
{
return false;
}
int calcStateAmp = +1;
if (view.getId () == R.id.btn_fine_up)
{
calcStateAmp = calcState_2;
}
double currentValue;
if (StringUtils.isNullOrEmpty (editText.getText ().toString ()))
{
currentValue = 0;
}
else
{
currentValue = Double.parseDouble (editText.getText ().toString ());
}
switch (getCurrentFocus ().getId ())
{
case ir.vebko.R.id.txt_va1_a:
case ir.vebko.R.id.txt_va2_a:
case ir.vebko.R.id.txt_va3_a:
case ir.vebko.R.id.txt_vb1_a:
editText.setText (String.format (Locale.ENGLISH, "%.2f", currentValue + (0.01 * calcStateAmp)));
break;
}
return true;
}
false
, возможно, это поможет вам использовать как onTouch, так и по клику - person Mohammad Arman   schedule 08.07.2017