Android findViewById liefert null zurück, wenn in der Klasse andere als Haupttätigkeit

Ich versuche zu bekommen eine TextView, die von ID in meinem listener-Klasse, die Griffe ein spinner ist onItemSelected Veranstaltung. In meiner Haupttätigkeit, die ich anrufen kann findViewById(R. id.textView1) und es funktioniert gut. Aber wenn ich rufen Sie die gleiche Funktion in meinem spinner-listener-Klasse, die es immer gibt null zurück, und zwingt die app zu schließen.

Jemand wissen, warum findViewById funktioniert in meinem Haupt-Aktivität, aber nicht in meinem listener-Klasse?

Hier ist der code von meinem Haupt-Aktivität. Es wird aufgerufen, wenn eine Schaltfläche geklickt wird:

public void something ()
{
    setContentView(R.layout.spinnerLayout);

    Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.spinner_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

}

Und hier ist der code für MyOnItemSelectedListener:

public class MyOnItemSelectedListener implements OnItemSelectedListener 
{

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    {               
        TextView tv = view.findViewById(R.id.myTextView);
        //I want to set the text of this text view to the value selected using the spinner
        tv.setText("Something");
    }

    public void onNothingSelected(AdapterView parent) {
      //Do nothing.
    }
}

Was muss ich tun, um "TextView tv = view.findViewById(R. id.myTextView);" zu arbeiten?

Dank!!!

InformationsquelleAutor Bumper | 2011-03-07
Schreibe einen Kommentar