- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
昨天我注意到可以通过兼容性包将 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/
我的代码中有这个,但 .setPressed 不起作用: Button btndesligado = (Button) findViewById(R.id.button12); btndesliga
昨天我注意到可以通过兼容性包将 Fragments 集成到旧的 API 级别中,但这对这个问题来说并不是真正必要的。 :) 我有一个带有 OnClickListener 的按钮 Button butt
我一直在使用带有以下代码的模拟器来按下特定按钮 redBut.performClick(); redBut.setPressed(true); redB
我正在尝试将按钮状态设置为 pressed=true onTouch,然后在一段时间后将其设置回 pressed=false。 onTouch 方法正确地将状态设置为按下 myTouchListene
我有一个像这样生成按钮的 fragment : public class MyFragment extends Fragment { LinearLayout lLayout; MyI
我想在第二次单击时禁用按钮按下,因此我在 Android 代码中为按钮的操作处理程序提供了以下代码: // do something when the button is clicked
我有一个 ImageView,我将其设置为 setImageResource(R.drawable.someStateListDrawable)。一切正常,单击时显示按下状态。但是,我已经做到了 on
包含 TextView 的自定义 View 发生了一些非常奇怪的事情。粗略地说,(下面的相关代码),我有一个自定义 View (FrameLayout 的子类),它会膨胀一些 xml 并将生成的 Vi
我是一名优秀的程序员,十分优秀!