多次点击后触发的 Android Button OnClick 事件

标签 android button onclick

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

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

这是在 onCreate override 中为 Activity A 设置事件监听器的代码

setTitleNegativeActionListener(new OnClickListener() {

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

这是 Activity B的代码

setTitleNegativeActionListener(new OnClickListener() {

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

来自布局的按钮 XML

<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" />

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

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

编辑: 经过更多调查后,我发现子 Activity B 被启动了两次(或更多次),每次单击按钮确实按预期工作,但看起来好像什么也没发生。完整答案如下。

最佳答案

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

关于多次点击后触发的 Android Button OnClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154231/

相关文章:

java - Q : Android Project Minimum SDK - API-15 (ICS) versus API-16 (JellyBean)

javascript - jQuery 和纯 Javascript 验证的区别

button - 连续的自定义 Flutter 按钮

javascript - 将另一个函数添加到 onclick

java - 找不到参数 org.gradle.api.Project 的方法 android()

Android 将 unicode 字符串设置为 textview

java - 传入短信内容

swift : pressed label to copy text to the clipboard

javascript - onclick 设置为 <tr> 如何禁用一个 <td>

php - 将javascript函数的值插入数据库