21

startChronometerメソッドがメインアクティビティ内で宣言されている場合、別のクラスでメソッドを呼び出すにはどうすればよいですか?

内部MainActivity:

public void startChronometer() {
    mChronometer.start();
    showElapsedTime();
}

別のクラス内で、私はこれをやろうとしました:

MainActivity mActivity;
mActivity.startChronometer();

しかし、次のようなエラーが発生しました。

java.lang.NullPointerException. 

コードに追加する必要があるものを教えてください。

4

12 に答える 12

38

次のようなキャストを行うことで、Activity 内の任意の Fragment からメソッドを簡単に呼び出すことができます。

ジャワ

((MainActivity)getActivity()).startChronometer();

コトリン

(activity as MainActivity).startChronometer()

実行する前に、この Fragment のアクティビティが実際に MainActivity であることを確認してください。

お役に立てれば!

于 2014-08-12T09:18:31.747 に答える
4

まずは初期化

MainActivity mActivity= new MainActivity();

その後、続行できます

mActivity.startChronometer();
于 2013-06-26T09:11:53.383 に答える
-2

このメソッドを静的にすることができます。

public static void startChronometer(){
        mChronometer.start();
        showElapsedTime();
    } 

以下のように、この関数を他のクラスで呼び出すことができます。

MainActivity.startChronometer();

また

次のように、メイン クラスのオブジェクトをセカンド クラスで作成できます。

MainActivity mActivity = new MainActivity();
mActivity.startChronometer();
于 2013-06-26T09:10:53.943 に答える