我有一个按钮,当我按下它时,我希望它保持按下状态(Froyo 上的绿色)。
有什么帮助吗?
mycodes_Button = (Button) findViewById(R.id.mycodes);
...
if (saved_Button.isPressed())
{
saved_Button.setFocusable(true);
}
像这样的东西?
我有一个按钮,当我按下它时,我希望它保持按下状态(Froyo 上的绿色)。
有什么帮助吗?
mycodes_Button = (Button) findViewById(R.id.mycodes);
...
if (saved_Button.isPressed())
{
saved_Button.setFocusable(true);
}
像这样的东西?
我在使用自定义背景的按钮时遇到了这个问题,并最终为此使用了选定状态。该状态适用于所有视图。
要使用它,您必须将自定义按钮背景定义为状态列表:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false"><bitmap ... /></item>
<item android:state_selected="true"><bitmap ... /></item>
<item android:state_focused="true"><bitmap ... /></item>
<item android:state_pressed="true"><bitmap ... /></item>
</selector>
然后使用该背景,假设它/res/drawable/button_bg.xml
在您的布局文件中,您使用:
...
<Button android:background="@drawable/button_bg" ... />
...
在您的代码中,您可以在 onClick 侦听器中切换到(取消)选择状态:
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(true);
// normal click action here
}
});
激活状态更符合预期含义,但仅适用于 Android 3.x 及更高版本。
使用以下代码。这很有用。
mycodes_Button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mycodes_Button.setPressed(true);
return true;
}
});
ToggleButton会满足您的需求吗?
从您的评论来看,您似乎不知道Touch Mode。在这种模式下,这是大多数事情的默认模式,没有焦点(这是您想要实现的),也没有选定的项目。
您可以尝试以编程方式退出触摸模式,但我不建议这样做。经过一段时间的习惯后,触控模式会给用户带来更好的体验。