gpt4 book ai didi

android button setPressed after onClick

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:35 27 4
gpt4 key购买 nike

昨天我注意到可以通过兼容性包将 Fragments 集成到旧的 API 级别中,但这对这个问题来说并不是真正必要的。 :)

我有一个带有 OnClickListener 的按钮

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
doSomething();
button.setPressed(true);
}
});

因为实际点击时,显示为按下,松开后,按钮状态为未按下,保持该状态。

有没有一种简单的方法可以在释放后保持按钮状态按下?我首先想到的是某种计时器,但这似乎不合理。

最佳答案

请注意,这是因为 Android 在您的 onClickEvent 之前和之后都更改了 setPressed,因此您自己更改它没有任何效果。解决此问题的另一种方法是使用 onTouchEvent

button.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {

// show interest in events resulting from ACTION_DOWN
if (event.getAction() == MotionEvent.ACTION_DOWN) return true;

// don't handle event unless its ACTION_UP so "doSomething()" only runs once.
if (event.getAction() != MotionEvent.ACTION_UP) return false;

doSomething();
button.setPressed(true);
return true;
}
});

关于android button setPressed after onClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5975168/

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