多次单击后触发Android Button OnClick事件

时间:2010-06-30 23:44:42

标签: android button onclick

我有一个自定义Android(1.5)标题栏,其中包含一个按钮。使用活动A中的自定义标题栏,我可以单击该按钮,并按预期启动OnClickListener事件。

但是,当我从活动A启动活动B的结果时,可能需要2-3次点击才能触发相同的按钮事件。

这是在onCreate覆盖

中为活动A设置事件侦听器的代码
setTitleNegativeActionListener(new OnClickListener() {

public void onClick(View v) {
  // end this activity
  ActivityA.this.finish();
  }
});

这是活动B的代码

setTitleNegativeActionListener(new OnClickListener() {

  public void onClick(View v) {
    setResult(RESULT_CANCELED);
    EditClientAddressActivity.this.finish();
  }
});

布局中的按钮

<Button 
  android:id="@+id/title_button_right" 
  android:layout_width="wrap_content" android:layout_height="wrap_content" 
  android:background="@drawable/nav_button"
  android:text="Done" android:textColor="#fff"
  android:layout_alignParentRight="true" android:textSize="12dip"
  android:textStyle="bold" android:paddingLeft="10dip"
  android:paddingRight="10dip" android:layout_centerVertical="true"
  android:minWidth="40dip" 
  android:focusableInTouchMode="false" android:focusable="false" />

好像在活动B中,第一次点击是将按钮置于焦点,第二次点击实际上是按下按钮。但是,我在按钮定义中将focusableInTouchModefocusable都设置为false。

在这种情况下是否需要定义一些其他属性以允许OnClickListener事件触发?

修改: 经过一番调查后,我发现孩子的活动B正在开始两次(或更多次),每次点击按钮确实按预期工作,但似乎没有发生任何事情。完全答案吼叫。

1 个答案:

答案 0 :(得分:1)

启动子代码的代码响应onTouch事件,该事件是针对ACTION_UPACTION_DOWN触发的。这将导致Activity启动多个实例。