Вам нужно использовать функцию runOnUIThread()
. У меня есть пример, который я опубликую, когда найду его.
вам нужно дать вашему таймеру экземпляр MainActivity, в качестве альтернативы посмотрите на этот вопрос, который я задал Проблемы синхронизации изображения Android с тем, что похоже на то, что вы пытались сделать
public static void updateText(Activity act, resID)
{
loadingText = (TextView) activity.findViewById(R.id.loadingScreenTextView);
act.runOnUiThread(new Runnable()
{
public void run()
{
loadingText.setText(resID);
}
});
}
Как и прокомментировал araqnid, триггер, кажется, откатывает транзакцию при выполнении условия. Вы можете сделать это проще с помощью триггера AFTER INSTERT:
CREATE TRIGGER [dbo].[TR_Payments_Insert]
ON [dbo].[Payment]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
IF <Condition>
BEGIN
ROLLBACK TRANSACTION
END
END
Затем вы можете снова использовать SCOPE_IDENTITY (), потому что INSERT больше не выполняется в триггере.
Само условие, кажется, пропускает две идентичные строки, если они находятся в той же вставке. С помощью триггера AFTER INSERT вы можете переписать условие, например:
IF EXISTS(
SELECT *
FROM dbo.Payment a
LEFT JOIN dbo.Payment b
ON a.Id <> b.Id
AND a.CustomerId = b.CustomerId
AND (a.DateFrom BETWEEN b.DateFrom AND b.DateTo
OR a.DateTo BETWEEN b.DateFrom AND b.DateTo)
WHERE b.Id is NOT NULL)
И он будет перехватывать повторяющиеся строки, потому что теперь он может различать их на основе Id. Это также работает, если вы удалите строку и замените ее другой строкой в том же операторе.
В любом случае, если вам нужен мой совет, вообще откажитесь от триггеров. Как вы можете видеть даже на этом примере, они очень сложные. Сделайте вставку через хранимую процедуру. Они проще и быстрее триггеров:
Я знаю, что ваш вопрос уже немного устарел, но если вам все еще интересно...
soundEmbed.setAttribute("id", testQuestions[i].id);
вы использовали один и тот же id
дважды, но getElementById
возвращает только один элемент, или false
, если не находит ни одного подходящего элемента.
Вы можете попробовать что-то вроде этого:
soundEmbed.setAttribute("id", "soundEmbed_"+testQuestions[i].id);
всегда помните, что id
должен быть уникальным