2013-05-14 1 views
1

У меня есть два проекта: SourceProject и TestProject. В Source-проекта у меня есть следующий класс:Переопределить части класса Activity из TestProject

public class MyActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Log.i("", "normal mode"); 
    } 
} 

В моем тестовом проекте я хотел бы изменить/отменить журнальное сообщение, например. Конечно, я могу сделать следующее и просто поставить новый класс в том же пути пакета и изменить класс следующим образом:

public class MyActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Log.i("", "test mode"); 
    } 
} 

Но, допустим, у меня есть гораздо больше функциональных возможностей в своем классе и хотел бы использовать эту функциональность (и в моем тестовом классе). Я не могу просто расширить мой SourceProject-Class «MyActivity», потому что он назван одинаково. Но если я изменю имя на «MyActivityX extends MyActivity», он, очевидно, не будет скомпилирован в приложение.

У кого-нибудь есть решение, которое не требует от меня копирования всего исходного класса в тестовый проект и его изменения там?

ответ

0

Если вы работаете под Linux, у вас может быть ссылка вместо файла в одном из ваших проектов.

$ ln -s {/path/to/file-name} {link-name} 

Я не знаю, есть ли ссылки под Windows.

+0

Но тогда я не мог изменить его для своих целей тестирования. Это будет по сути то же самое, что вообще не иметь этот файл в моем тестовом проекте. –

+0

Вы можете попробовать использовать некоторую систему управления версиями, иметь несколько ветвей для одного и того же файла, при необходимости объединить. Попробуйте Git или Svn. –