2010-12-31 10 views
9

Ich habe eine Aktivitätsgruppe mit 3 Aktivitäten. Wenn eine Taste gedrückt wird, gehe ich in diese Aktivitätsgruppe und zeige die erste Aktivität an. Von der ersten Aktivität kann ich zur zweiten Aktivität gehen und von der zweiten zur dritten Aktivität.Fehler beim Platzieren eines Spinner in Aktivitätsgruppe

Ich habe einen Spinner in diesem 3. Aktivitätslayout. Problem ist, dass ich nicht auf diesen Spinner klicken kann. Fehler wird angezeigt:

12-31 11:29:41.082: ERROR/AndroidRuntime(474): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 

Wie kann ich dieses Problem lösen? Kann jemand plz help ...

Hallo,

den Code für Spinner finden Anbei:

setContentView(R.layout.requestinfo); 
Spinner spinner = (Spinner) findViewById(R.id.spinner); 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      PGDealerInfoRequestActivity.this, R.array.request_options, android.R.layout.simple_spinner_item); 
    spinner.setAdapter(adapter); 

Innen requestinfo.xml,

<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:textColor="@android:color/darker_gray" 
      android:textSize="12sp" android:textStyle="bold" 
      android:layout_marginLeft="10dp" android:layout_marginTop="8dp" /> 
+0

Das Posten eines Codes könnte Ihnen helfen, eine bessere Antwort zu bekommen. – ninjasense

+0

Ich hatte dasselbe Problem und folgte dem, was Mathew vorgeschlagen hatte. Es hat wirklich funktioniert. – Nitish

Antwort

44

Der Fehler war mit der SetContentView. Ich hatte

gegeben
setContentView(R.layout.mylayout); 

Statt dass von uns geben sollte,

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.mylayout, null); 
this.setContentView(viewToLoad); 

Und der Spinner-Code ist:

Spinner spinner = (Spinner) findViewById(R.id.spinner); 

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.request_options, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
    spinner.setAdapter(adapter); 
+1

Wow, Bruder, toll Vielen Dank –

+2

Danke Ich habe das gleiche Problem und Ihre Antwort hat mir aus meinem Problem geholfen – Dharmendra

+0

Dank ich habe das gleiche Problem. Aber konnte es nicht beheben ... Bitte helfen Sie mir http://StackOverflow.com/Questions/ 7609519/android-spinner-error-android-view-windowmanagerbadtokenexception-unable-to-a – Piraba

1

können Sie hinzufügen spiner.setDropDownViewResource()? und bei Ihrer Initialisierung verwenden Sie den Kontext namens this oder getApplicationContext(), zum Beispiel AlertDialog.Builder (xxx.this) => AlertDialog.Builder (this.getParent())

+0

habe ich hinzugefügt .. aber gleicher Fehler ... – Mathew

0

Dies könnte Ihr Problem lösen this.getParent() Ich habe es oft in meinem Code verwendet. es funktionierte f9.

+1

Hinzugefügt ... aber für Spinner allein kann ich nicht ... andere Dialoge kommen ... gleicher Fehler jetzt auch ... :( – Mathew

0

Mathew seine Methode funktioniert:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.mylayout, null); 
this.setContentView(viewToLoad); 

Ich folge diese Methode an und dann stürzt meine Anwendung beim Klick auf die Schaltfläche ab. Um dies zu beheben, entfernen Sie die onClick-Methode aus der XML-Datei. Gehe zur Java-Klasse und füge button.setOnClickListener hinzu!

Verwandte Themen