とという2つのアクティビティがActivity_A
ありActivity_B
ます。Activity_Aに次のようなメソッドまたは関数があります。
public void printNumber (int i) {
for(int j = 0; j <= i; j++) {
Log.w("TAG", "Print number is: " + j);
}
}
次に、Activity_Bという別のアクティビティからこのメソッドを呼び出します。
次の行を使用してこのメソッドを呼び出そうとしています。
((Activity_A) this.getApplicationContext()).printNumber();
この行をActivity_BのonCreateに書き込むと、アプリケーションがクラッシュし、logcatに次のエラーが表示されます。
java.lang.ClassCastException: android.app.Application cannot be cast to com.example.app.Activity_A
これどうやってするの?
編集: 私はこの質問を見つけました、そして「リッチ」によるActivity_A
とActivity_B
。しかし、問題はActivity_B
リストアクティビティであり、私はすでにこれをで拡張していListActivity
ます。
およびその他の回答は、のインスタンスを作成してからActivity_A
メソッドを呼び出します。これを行うと、すべての変数が空になるか、nullになりますActivity_A
。そして、私は静的メソッドを作りたくありません。
静的参照または別のインスタンスを作成せずにこれを行う他の方法はありますか?