2016-09-14 7 views
1

私は2つのアクティビティを持っています&私はBからメソッドを呼び出したいです。 このようにして、nullポインタの例外が発生しました。1つのアクティビティから別のアクティビティへ非静的メソッドを呼び出す方法

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

} 

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

ただ、今、この新しい活動でこの機能を配置** AppActivityを作成し、あなたの活動のAとBの両方でそれを拡張。あなたに簡単にアクセスできます。 –

+0

アクティビティクラスの新しいオブジェクトを作成することはできません.Aアクティビティの現在のインスタンスを取得し、そのインスタンスに対して '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(); 
    } 
} 
関連する問題