gpt4 book ai didi

java - 我想在长按 "+"或 "-"按钮时继续增加/减少计数器.... Android setOnLongClickListener

转载 作者:行者123 更新时间:2023-12-02 06:31:35 25 4
gpt4 key购买 nike

在 setOnClickListener 的帮助下,我能够在相应的“-”或“-”按钮单击上递增/递减。但如果我继续按住(长按)“+”或“-”按钮,我想继续增加/减少尊重计数器。就像在 map 中一样,当我们触摸“放大”按钮并将取景器放在其上时, map 会不断放大,直到我们移开手指。

我尝试用 setOnLongClickListener 来做这件事和setOnTouchListener,搜索了stackoverflow论坛但找不到帮助。

这是我的 Android Activity 的完整 Java 代码。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final TextView tv_1= (TextView) findViewById(R.id.tv_1);
Button btn_1= (Button) findViewById(R.id.btn_1);
Button btn_2= (Button) findViewById(R.id.btn_2);

final TextView tv_2= (TextView) findViewById(R.id.tv_2);
Button btn_3= (Button) findViewById(R.id.btn_3);
Button btn_4= (Button) findViewById(R.id.btn_4);

final TextView tv_3= (TextView) findViewById(R.id.tv_3);
Button btn_5= (Button) findViewById(R.id.btn_5);
Button btn_6= (Button) findViewById(R.id.btn_6);

Button btn_7= (Button) findViewById(R.id.btn_7);


btn_1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_1.getText().toString();
int cnt= Integer.parseInt(count);
cnt++;
tv_1.setText(""+cnt);
}
});
btn_2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_1.getText().toString();
int cnt= Integer.parseInt(count);
cnt--;
tv_1.setText(""+cnt);
}
});



btn_3.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_2.getText().toString();
int cnt= Integer.parseInt(count);
cnt++;
tv_2.setText(""+cnt);
}
});
btn_4.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_2.getText().toString();
int cnt= Integer.parseInt(count);
cnt--;
tv_2.setText(""+cnt);
}
});


btn_5.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_3.getText().toString();
int cnt= Integer.parseInt(count);
cnt++;
tv_3.setText(""+cnt);
}
});
btn_6.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String count=tv_3.getText().toString();
int cnt= Integer.parseInt(count);
cnt--;
tv_3.setText(""+cnt);
}
});




btn_7.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tv_1.setText(""+0);
tv_2.setText(""+0);
tv_3.setText(""+0);
}
});


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

最佳答案

我建议您使用OnTouchListener。我们调用新线程,该线程将一直运行,直到您在 while 循环中按下按钮为止:

public class MainActivity extends Activity implements OnTouchListener {

...
btn_1.setOnTouchListener(this);
...

@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction()==MotionEvent.ACTION_DOWN){

doPressDown();
}
else if (arg1.getAction()==MotionEvent.ACTION_UP){

doPressRelease();
}

return true;
}

private void doPressDown() {
isPressed = true;
new Thread(() -> {
while (isPressed == true) {
// here we increment till user release the button
}
}).start();
}

private void doPressRelease(){
isPressed = false;
}

}

关于java - 我想在长按 "+"或 "-"按钮时继续增加/减少计数器.... Android setOnLongClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20017287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com