gpt4 book ai didi

java - 如何仅在特定时间调用函数

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

我有一个 EditText 和一个 FrameLayout。我这样做的方式是,如果用户在 FrameLayout 内拖动,背景会根据 (X,Y) 坐标中的像素更改颜色 (RGB),并使用从 RGB 值转换的十六进制值更新 EditText。

这是我的整个代码的 Pastebin 链接: http://pastebin.com/7P3QSmb4

我遇到的问题是以下代码:

if (s.length() == 6) {
int color = Integer.parseInt(etHexVal.getText().toString(), 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;
getXY(r, g, b);
hexToRGB();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etHexVal.getWindowToken(), 0);
}

我想在 EditText 的文本发生更改时调用函数 getXY(r, g, b) 不要在 FrameLayout 内拖动,否则会使我的应用程序滞后。 如何修改现有代码?

最佳答案

使用变量锁定 getXY() 的调用

声明一个新变量

Boolean callGetXY = true;

在 ACTION_DOWN 时将其设置为 false,在 ACTION_UP 时将其恢复为 true

View.OnTouchListener flTouch = new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// your current content of the method here
// ...
if (event.getAction() == MotionEvent.ACTION_DOWN) {
callGetXY = false;
}

if (event.getAction() == MotionEvent.ACTION_UP) {
callGetXY = true;
}

}
};

将第 82 行更改为:

if (callGetXY) {
getXY()
}

关于java - 如何仅在特定时间调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21767103/

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