2016-09-14 14 views
1

Ich habe zwei Aktivitäten & Ich möchte eine Methode aus B löschen. Ich habe versucht, so, und ich bekomme Nullzeiger Ausnahmen.So rufen Sie eine nicht statische Methode von einer Aktivität zu einer anderen Aktivität auf

class A extends Activity { 
    ... 
    public void clear(){} 

} 

class B extends Activity{ 
    public void clearData() { 
     A a=new A(); 
     a.clear(); 
    }   
} 
+0

einfach erstellen . Es ist für Sie leicht zugänglich. –

+0

Sie können kein neues Objekt Ihrer Aktivitätsklasse erstellen, sondern nur die aktuelle Instanz der A-Aktivität abrufen und 'clear()' für diese Instanz aufrufen –

Antwort

8
class A extends Activity{ 
static A instance; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    instance = this; 
} 

public static A getInstance() { 
    return instance; 
} 
.... 
public void clear(){} 

} 

und in der Klasse B: ein ** AppActivity **, und erweitern Sie es in Ihrem sowohl die Aufgabe A und B. Sie nun diese Funktion in dieser neuen Tätigkeit

class B extends Activity { 
    public void clearData(){ 
     A a = A.getInstance(); 
     a.clear(); 
    } 
} 
Verwandte Themen