0

Androidのコーディング中にこの問題に遭遇しました。メイン クラスに非静的メソッド (内部のコードが機能するためには非静的である必要があります) がある場合、別のクラス内からそれを呼び出すにはどうすればよいですか?プログラムの新しいインスタンスを開始せずに私のメインクラス?

public class MainActivity extends FragmentActivity {
public static String starttime = "";
public static String startdate = "";
public static String endtime = "";
public static String enddate = "";
public static boolean start = false;
}

public void setDateText() {
    EditText TextStart = (EditText)findViewById(R.id.txt_start);
    TextStart.setText(startdate + " at " + starttime, TextView.BufferType.NORMAL);
    EditText TextEnd = (EditText)findViewById(R.id.txt_end);
    TextEnd.setText(enddate + " at " + endtime, TextView.BufferType.NORMAL);
}

setDateText()別のクラスからメソッドを呼び出す方法について何か助けはありますか?

前もって感謝します

4

4 に答える 4

0

Without knowing which other class is trying to access the MainActivity instance, you will need to pass a reference of this instance to your other objects, probably by passing this into a constructor or method.

For example

public class MainActivity extends FragmentActivity {
    public void someMethod() {
        SomeClass someClass = new SomeClass(this); // pass this for callbacks
        // ~ more
    }
}

where SomeClass is a class where you need to call the MainActivity's setDateText method.

于 2013-09-06T18:46:37.883 に答える
0

アクティビティの起動時に呼び出す必要がある場合は、アクティビティを起動するときにsetDate()日付を渡し、のメソッドで日付を取得できます。IntentMainActivityonCreate

起動時以外に setDate() を呼び出す必要がある場合は、他のアクティビティ/コンポーネントからブロードキャストを送信し、MainActivityリッスンしBroadcastてインテントのデータから日付を取得できます。

于 2013-09-06T19:09:04.200 に答える