Spinner aktualisiert ListView

  • 3 Antworten
  • Letztes Antwortdatum
S

SilverStarNBG

Neues Mitglied
0
Habe mit der App-Entwicklung vor ein paar Tagen erst angefangen und hänge jetzt an meinem ersten Problem.

Ich möchte dass ein Spinner den TextView entspechtend aktualisiert.
Jenachdem auf was der Spinner steht, soll das TextView eine entsprechendes Array anzeigen.

Mein aktueller Code ist im moment so, dass ich erstmal überhaupt was angezeit haben möchte. Doch daran scheitet es bereits...

Hier das Activity:
Code:
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class MetoprololActivity extends ListActivity {

    private Spinner spinner1;
    
    
    protected OnItemSelectedListener onSpinnerItemSelect = new OnItemSelectedListener() {
        
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
            updatePhrase();
        }
        
        public void onNothingSelected(AdapterView<?> parent) {
            updatePhrase();
        }
        
        private void updatePhrase() {
            ArrayAdapter<String> adapter =
                    new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.ar_txt_Indikation_Metoprolol));

            //hier bekomme ich den Fehler angezeigt: The constructor ArrayAdapter<String>(new AdapterView.OnItemSelectedListener(){}, int, String[]) is undefined
            
            setListAdapter(adapter);
        }
        
    };    

    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.metoprolol);
        
        spinner1 = (Spinner) findViewById(R.id.spi_Medi);
        spinner1.setOnItemSelectedListener(onSpinnerItemSelect);        
        
    }

}
und hier das Layout:
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/Metoprolol"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Spinner
        android:id="@+id/spi_Medi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:entries="@array/ar_spin_medikament" />

    <ListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/spi_Medi"
        android:layout_marginTop="30dp" />


</RelativeLayout>
Vielleicht kann mir jemand helfen?
Das wäre super... :rolleyes2:
 
Zuletzt bearbeitet:
Also für mich passen die Namen im Code und in der XML nicht zusammen.

Was kommt denn für eine Fehlermeldung?
 
Das ist die Fehlermeldung

The constructor ArrayAdapter<String>(new AdapterView.OnItemSelectedListener(){}, int, String[]) is undefined

Der ursprüngliche Beitrag von 14:41 Uhr wurde um 16:05 Uhr ergänzt:

Wenn jemand eine andere möglichkeit kennt, mit einem Spinner den ListView zu aktualisieren, bin ich auch gerne bereit es um zu bauen. Es muss halt funktionieren ;)

Es soll so sein, dass wenn man im Spinner "Indikation" auswählt, soll in dem ListView das Array entsprechend angezeigt werden. Wird etwas anderes ausgewählt soll der ListView entsprechend mit einem anderen Array aktualisiert werden...
 
Hi,

der Fehler besagt, dass er aus den Parametern kein ArrayAdapter-Objekt erstellen kann.
Die Konstruktoren kannst du dir hier ansehen:
ArrayAdapter | Android Developers

Die letzten zwei Parameter mit dem generischen Typ "String" sind korrekt.
Der erste Parameter muss vom Typ Context sein. Du erstellst meiner Meinung nach ein Objekt von einem Interface.

Nach mehrmaligem Überlegen bin ich der Meinung, dass deine Fehlermeldung einen ganz anderen Ursprung hat.
Bitte arbeite dich nochmal in die Grundlagen ein.

Edit: An der von dir beschriebenen Stelle ist this das OnItemSelectListener-Objekt, und nicht die Activity.
 
Zuletzt bearbeitet:
Zurück
Oben Unten