我有兩個項目,A(主項目)和B(庫項目)。 B包含在A的構建路徑中。我必須從A的一些活動開始B的幾個活動。這工作正常,直到最近,我不得不從A的活動開始A的活動。將主項目包含在庫項目的構建路徑中的正確方法
要做我嘗試了將A添加到B的構建路徑中,但是它的作用是在無限循環中運行構建過程。顯然,這不是實現我想要的正確方法。
我的問題是,如何從主項目中包含的庫訪問主項目的類?
我有兩個項目,A(主項目)和B(庫項目)。 B包含在A的構建路徑中。我必須從A的一些活動開始B的幾個活動。這工作正常,直到最近,我不得不從A的活動開始A的活動。將主項目包含在庫項目的構建路徑中的正確方法
要做我嘗試了將A添加到B的構建路徑中,但是它的作用是在無限循環中運行構建過程。顯然,這不是實現我想要的正確方法。
我的問題是,如何從主項目中包含的庫訪問主項目的類?
嘗試將活動.class
實例作爲參數發送給B. 然後,您可以使用StartActivity(context , class)
開始它。
不僅活動,還有其他類。也許有可能開始這樣的活動,但你的解決方案只適用於活動。另外,我也想把'東西'發送給A.發送一種方式正在工作 – 2014-09-03 05:32:54
反射是一種方法,但它不夠好。一種可能的方式是,使活動在庫項目摘要:
在項目B(庫proejct)
public abstract class LibraryActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set up activity
// Suppose you want to start the activity when a button is clicked
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
startOtherActivity();
}
});
}
public abstract void startOtherActivity();
}
在您的主項目實現抽象功能活動:
public class LibraryActivityImpl extends LibraryActivity {
@Override
public void startOtherActivity() {
startActivity(new Intent(this, MainProjectActivity.class));
}
}
現在你的主要項目,開始LibraryActivityImpl
而不是LibraryActivity
。
這樣,您不必擔心對圖書館項目未知的類的奇怪訪問。
這裏有點問題。當一個庫項目需要訪問不在庫中的東西時,實際上應該將其放入庫項目中,而不是經歷所有的麻煩。 – 2014-09-03 05:39:18
好的。那麼我想實現的是不可能的? – 2014-09-03 05:39:56
要回答你的問題,這是可能的。您可以使用反射來獲取該類,並使用它調用'startActivity'。但是,請注意,您的代碼將來可能會輕易破解,因爲它仍會編譯,但只會在運行時引發錯誤。 – 2014-09-03 05:42:47