Aktivität zu Aktivität callback-listener

Nehmen wir an 2 Aktivitäten Activity1 und Activity2. Ich muss rufen Sie die Methode methodAct1() (innen Activity1) von methodAct2 (innen Activity2). Ich denke, es sollte funktionieren mit callback-listener - ich will nicht EventBus libs!

Bekomme ich java.lang.NullPointerException mit diesem code:

Schnittstelle:

public interface MyListener {
    public void listen();
}

Aktivität wo das Ereignis erstellt:

public class Activity2 extends Activity {

    private MyListener  myListener;

    public void setUpListener(MyListener myListener) {
        this.myListener = myListener;
    }

    private void doWork(){
        //do stuff 
        myListener.listen();
    }
}

Tätigkeit, wo ich mag würde, um das Ereignis aus, wenn die Arbeit getan ist:

public class Activity1 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Activity2 activity2 = new Activity2();
        activity2.setUpListener(new setUpListener() {
            @Override
            public void listen() {
                //get the event here

            }
        });
    }
}
  • aber zu einem Zeitpunkt nur eine Aktivität initialisiert wird, senden Sie einige Daten in eine Absicht, und starten Sie eine andere Tätigkeit, und diese Daten Lesen oder wahrscheinlich mit startActivityForResult
  • Sie sage nur die Schnittstelle, aber keine Ihrer Aktivitäten umzusetzen
  • Warum sind Sie Instanziierung der Aktivität mit dem Konstruktor? Dies ist nicht der Weg, das zu tun. Starten Sie eine neue Aktivität erstellen Sie eine Intent - und call -startActivity().
  • Mittal brauche ich nicht zum initialisieren der ersten ein, wenn die Arbeit getan ist, in die zweite ein, aber nur einige-code
  • ersten stärken Ihre Grundlagen, dann werden Sie verstehen 🙂
  • Sie sind nicht zwei Tätigkeiten zur gleichen Zeit ausgeführt.

InformationsquelleAutor Vasile Doe | 2015-11-23
Schreibe einen Kommentar