Why did he say that Hashem tore his kingship away today? Shmuel already told Sha'ul so at Gilgal, when he did not wait for him (13:14)!
Radak #1, Malbim #1: The earlier sin could have been pardoned through Teshuvah and good deeds. Now that Shmuel sinned again, today it was [irrevocably] torn away. Malbim - also, Hashem promised it to "your colleague who is better than you." This is good for his colleague, so it must be fulfilled.
Radak #2: Before, Hashem decreed that the kingship will not pass to Sha'ul's children, but he himself could reign a long time. Now Sha'ul will not reign a long time. Also when the Ba'alas Ov conjured up Shmuel, he said that Sha'ul' lost his kingship due to the episode of Amalek (28:17, 18).
Malbim #2: Sha'ul immediately lost Ru'ach Hashem and the Hod (grandeur) of kingship
Why did Sha'ul lose kingship due to one sin? David sinned, repented, and kept his kingship!
Malbim (1, citing Sefer ha'Ikarim 24:4): Sha?ul sinned in a matter of kingship. David's sin was not a matter of kingship. Sefer ha'Ikarim gave a parable of two scribes. One forged documents, and the other transgressed Ervah. The one who sinned in his craft should be deposed from his craft. David sinned in a matter that applies to commoners 1 ; Sha?ul sinned in what he was commanded as king. Shlomo transgressed the Isur for a king to take too many wives; [part of] his kingship was torn from him. Yehu fulfilled his command to wipe out Beis Yarav'am, his kingship lasted for four generations, despite the Aveiros that he did.
One who says that David sinned, he errs (56a). I.e. it was considered a sin only because Hashem is so meticulous with Tzadikim (Daf Al ha'Daf 56a citing R. Y.D. Soloveichik). In any case, the sin was in a matter that applies to commoners. Perhaps this is why David' sin of counting Yisrael (24:1) is not considered a matter of kingship. Alternatively, David did not lose kingship for counting Yisrael, for Hashem incited him to do so. (PF)