Ich habe eine Listenansicht, die Textansichten als Elemente enthält.
Die Auswahl der Einstellungen und die Einstellung des Fokus sind zwei verschiedene Dinge. Wenn Sie nur eine Auswahl auf ein Element setzen möchten, können Sie den folgenden Code verwenden.
%Vor% Aber das bedeutet definitiv nicht, dass Listview
fokussiert ist. Für die Fokussierung müssen Sie
Um den Fokus beim Klicken auf eine Schaltfläche zu ändern, können Sie den Code auf onClick()
der Schaltfläche setzen.
ListView verfügt über eine Methode setSelected , die den Index des Elements übernimmt in der Liste.
Ich glaube, ich war in der gleichen Situation. Ich wollte in der Lage sein, den Fokus der Listenansicht programmatisch mit Schaltflächen zu steuern.
Eine Lösung besteht darin, mit setFocusableInTouchMode
umzugehen, aber ich habe es nie geschafft, dass es funktioniert.
Die andere Lösung besteht darin, den Fokus zu vergessen und eine überprüfbare Listenansicht zu verwenden. Setzen Sie Ihre Listenansicht zunächst auf "Single-Choice-Modus" in XML oder in Java: Mylistview.setChoiceMode(1)
Dann können Sie jedes gewünschte Element mit Mylistview.setItemChecked(position, true)
Wenn Sie also die Anwendung (OnCreate) zu Mittag essen, verwenden Sie Mylistview.setItemChecked(0, true)
, um Ihren ersten Eintrag zu überprüfen.
Wenn Sie möchten, dass Ihre Schaltfläche beispielsweise das nächste Element auswählt, verwenden Sie:
%Vor%Sie können das Aussehen festlegen, wenn das Element aktiviert ist oder nicht, und es gibt verschiedene vordefinierte checkbare Listenansichten.
Weitere Erläuterungen finden Sie in meinem Beitrag