2016-09-14 142 views
1

我有兩個活動&我想調用一個方法清除B. 我試過這樣,我得到空指針異常。如何從一個活動調用非靜態方法到另一個活動

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

} 

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

只需創建一個** ** AppActivity,它在你的這兩個活動上延伸和B.現在把這個功能在這一新的活動。它很容易讓你。 –

+0

您不能創建活動類的新對象,只需獲取A Activity的當前實例並在該實例上調用clear() –

回答

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(){} 

} 

和B類:

class B extends Activity { 
    public void clearData(){ 
     A a = A.getInstance(); 
     a.clear(); 
    } 
} 
相關問題