我有一个自定义Android(1.5)标题栏,其中包含一个按钮。使用活动A中的自定义标题栏,我可以单击该按钮,并按预期启动OnClickListener
事件。
但是,当我从活动A启动活动B的结果时,可能需要2-3次点击才能触发相同的按钮事件。
这是在onCreate
覆盖
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中,第一次点击是将按钮置于焦点,第二次点击实际上是按下按钮。但是,我在按钮定义中将focusableInTouchMode
和focusable
都设置为false。
在这种情况下是否需要定义一些其他属性以允许OnClickListener
事件触发?
修改: 经过一番调查后,我发现孩子的活动B正在开始两次(或更多次),每次点击按钮确实按预期工作,但似乎没有发生任何事情。完全答案吼叫。
答案 0 :(得分:1)
启动子代码的代码响应onTouch
事件,该事件是针对ACTION_UP
和ACTION_DOWN
触发的。这将导致Activity启动多个实例。