2013-06-06 4 views
0

я передал объект деятельности в какой-то класс:Override объекта Activity от другого класса

// SomeClass.java constructor 
public SomeClass(Activity activity) { 
    this.mActivity = activity; 
} 

мне нужно использовать startActivityForResult объекта деятельности:

private void goToAnotherActivity() { 
    Intent intent = new Intent(this.mActivity, AnotherActivity.class); 
    this.mActivity.startActivityForResult(intent, INTENT_KEY); 
} 

Можно ли переопределить this.mActivity's onActivityResult из SomeClass.java?

+0

Что вы на самом деле хотите с этим? – stinepike

+0

Я использую библиотеку twitter4j. Он войдет в TwitterOAuthActivity.java для процесса входа в систему. Поскольку я буду называть библиотеку в разных действиях, я ищу более общий способ сделать это вместо копирования и вставки нагрузок кода. Спасибо – siutsin

ответ

2

Вам не нужно явно звонить onActivityResult(). Просто переопределите его в Activity, переданном SomeClass, и он будет выполнен, когда закончится AnotherActivity. Если вам нужно, вы можете создать BaseActivity, который переопределяет onActivityResult() и будет выполнять действия, которые вы намерены передать SomeClass продлить BaseActivity.

Другим подходом было бы использовать API отражения/инструментария Java для переопределения метода в mActivity на лету, если это действительно необходимо.

+1

SomeClass.java не расширил Activity и это объект, поэтому он не может переопределить onActivityResult(). – siutsin

+0

Извините, я имел в виду переопределить его в Activity, переданном SomeClass. Я исправил ответ. – Piovezan

+0

Спасибо, а это значит, что мне нужно создать еще один промежуточный класс Activity и сделать все его действия расширенными, но не могу сделать это в SomeClass.java правильно? – siutsin

Смежные вопросы