2010-06-30 2 views
2

У меня есть обычай Android (1.5) Строка заголовка, которая содержит кнопку. Используя настраиваемую панель заголовка в действии А, я могу нажать кнопку и запустить огонь событий OnClickListener, как и ожидалось.Android Кнопка OnClick события уволено после нескольких щелчков

Однако, когда я запускаю активность 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(); 
    } 
}); 

Кнопка 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" /> 

Кажется, что в действии B первый щелчок помещает кнопку i nto focus, а второй щелчок фактически нажимает кнопку. Тем не менее, я установил как focusableInTouchMode, так и focusable, чтобы быть ложным в определении кнопок.

Есть ли какая-либо другая собственность, который должен быть определен, чтобы позволить OnClickListener события стрелять в этом случае?

EDIT: После немного больше расследования я обнаружил, что ребенок активность B в настоящее время началась в два раза (или больше) и каждый щелчок кнопки действительно работает, как ожидалось, но оказалось, что ничего не происходит. Полный ответ ниже.

ответ

1

Код запуска ребенка Деятельность реагирует на событие onTouch, которое было уволено за ACTION_UP и ACTION_DOWN. Это заставит Activity запустить несколько экземпляров.

Смежные вопросы