【发布时间】:2017-07-08 05:22:31
【问题描述】:
我有一个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可能对你有帮助Use both onTouch and onClick