Wenn Sie ein Handle zu einem Spinner
Objekt in einem Android activity
haben, können Sie die Spinner-Optionen programmatisch öffnen - wodurch der Benutzer gezwungen ist, eine Option auszuwählen, obwohl sie selbst nicht auf die spinner
geklickt haben?Programmgesteuertes Öffnen eines Spinner in der Android App möglich?
Antwort
Um den Spinner zu öffnen, müssen Sie nur seine performClick() Methode aufrufen.
Beachten Sie, dass Sie diese Methode nur über den UI-Thread aufrufen können. Wenn Sie den Spinner aus einem separaten Thread öffnen müssen, sollten Sie im UI-Thread eine Handler erstellen und dann aus Ihrem zweiten Thread ein ausführbares Objekt senden, das performClick() an den Handler aufruft.
package com.example.SpinnerDemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Handler;
public class SpinnerDemo extends Activity {
private Handler h;
private Spinner s;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
h = new Handler();
s = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
R.array.planets, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
// Open the Spinner...
s.performClick();
// Spawn a thread that triggers the Spinner to open after 5 seconds...
new Thread(new Runnable() {
public void run() {
// DO NOT ATTEMPT TO DIRECTLY UPDATE THE UI HERE, IT WON'T WORK!
// YOU MUST POST THE WORK TO THE UI THREAD'S HANDLER
h.postDelayed(new Runnable() {
public void run() {
// Open the Spinner...
s.performClick();
}
}, 5000);
}
}).start();
}
}
Die Ressourcen, die von diesem Beispiel verwendet wird, kann here finden.
Dank tun wollen. performClick() war was ich gesucht habe. Ich hätte diese Methode auf dem Spinner sehen sollen, aber wegen einiger Verwirrung an meinem Ende verpasst. Danke vielmals! – JohnRock
Was passiert, wenn ich runOnUIThread für die Verwendung von "Ausführen" verwendet habe, klicken Sie auf einen anderen Thread. – Relsell
Arbeitete vor 5.0.2, scheint auf 5.0.2 (nur für einige Geräte) gebrochen zu sein, aber wieder auf 5.1 ... –
Warum gibt es 2 Runnables im vorherigen Beispiel?
Wird es nicht genug sein:
h.postDelayed(new Runnable() {
public void run() {
s.performClick();
}
}, 5000);
Ich denke, es ist nur eine Demo, um den Handler von einem separaten Thread arbeiten zu zeigen. –
die Sie gerade Spinner
Elemente anzuzeigen, benötigen performClick()
Methode ist es zu nennen.
Spinner spDeviceType = (Spinner) findViewById(R.id.spDeviceType);
spDeviceType.performClick();
einfach nutzen diese
yourspinner.performClick();
- 1. Programmgesteuertes Öffnen der Einstellungen App (iPhone)
- 2. PhoneGap Android App Auslöser Programmgesteuertes Update
- 3. Android App starten mit virtueller Tastatur öffnen
- 4. Benutzerdefiniertes android Spinner/Picker
- 5. Öffnen der Android-App über den Kalender
- 6. Android-Benachrichtigungen Aktionen ohne Öffnen der App
- 7. Programmgesteuertes Öffnen des CD-Fachs
- 8. Programmgesteuertes Öffnen von Run C++?
- 9. Android Spinner: App stürzt ab onItemSelected
- 10. Programmgesteuertes Scrollen eines UIScrollView
- 11. Android Spinner
- 12. Programmgesteuertes Abrufen der Assemblyversion eines ausgeführten Diensts
- 13. Android Einstellungen Spinner
- 14. Ändern Spinner Inhalt beim Öffnen
- 15. Programmgesteuertes Überprüfen des Verbindungsstatus eines Bluetooth-Geräts in Android?
- 16. Spinner in android Eklipse
- 17. Programmgesteuertes Ausführen einer Suche im App Store?
- 18. Android Spinner
- 19. Android App nicht wieder öffnen
- 20. Spinner in android XML-Layout
- 21. Öffnen Sie pdf in Cordova App (Android)
- 22. Programmgesteuertes Erstellen eines Projekts
- 23. Programmgesteuertes Senden eines Formulars
- 24. Programmgesteuertes Deaktivieren des App-Energiesparmodus für Samsung
- 25. Öffnen einer Webseite in einer Android-App
- 26. Programmgesteuertes Abmelden eines ASP.NET-Benutzers
- 27. Android - Spinner in einem ListView
- 28. Magento: Programmgesteuertes Ändern der Konfiguration eines Widgets
- 29. Android - Spinner Tree
- 30. Programmgesteuertes Senden eines Fernsteuerungsereignisses in iOS
was do u von spinner Objekt bedeuten, kann u Mock Screenshots teilen, was u – the100rabh