Android按钮专注于状态工作,但没有按下?

时间:2015-08-24 14:08:25

标签: java android button fragment selector

在我的应用中,我正在使用带选择器状态的自定义按钮。未压缩和集中的状态工作得很好,尽管压迫状态不会起作用。有任何想法吗? on click侦听器在片段中实现,如果这意味着什么。

这是我的选择码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/participants_pressed"
        android:state_pressed="true" />
    <item android:drawable="@drawable/participants_pressed"
        android:state_focused="true" />
    <item android:drawable="@drawable/participants_unpressed" />
</selector>

这是我的java代码:

Button participantsSelector = new Button(getActivity());
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(300,300);
participantsSelector.setBackgroundResource(R.drawable.selector_participants);
participantsSelector.setLayoutParams(lp);
participantsSelector.setClickable(true);
participantsSelector.setOnClickListener(this);
participantsGrid.addView(participantsSelector);

2 个答案:

答案 0 :(得分:0)

仅当用户将手指放在按钮上时才按下按钮。如果你想要两个不同的状态,你可以使用ToggleButton。

对于你的绘画:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="true" /> //currently pressed turning the toggle on
<item android:state_pressed="true" /> //currently pressed turning the toggle off
<item android:state_checked="true" /> //not pressed default checked state
<item /> //default non-pressed non-checked

答案 1 :(得分:0)

使用你已经拥有的XML和Button,我想知道......如果你以编程方式在监听器中切换状态会怎么样?

button.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {

    if(button.isSelected()) {
      button.setSelected(false);
    } else {
      button.isSelected(true);
    }
  }
});