我有两个项目,A(主项目)和B(图书馆项目)。 B包含在A的构建路径中。我必须从A的某些活动开始B的一些活动。这个工作正常,直到最近,我必须从B的活动开始A的活动。
要做到这一点,我尝试将A添加到B的构建路径,但是这样做,是在无限循环中运行构建过程。所以,显然,这不是实现我想要的正确方法。
我的问题是,如何从主项目中包含的图书馆访问主项目的课程?
答案 0 :(得分:0)
尝试将活动.class
实例作为参数发送给B.
然后,您可以使用StartActivity(context , class)
启动它。
答案 1 :(得分:0)
反思是一种方法,但它还不够好。一种可能的方法是使库项目中的活动抽象化:
项目B中的活动(图书馆项目)
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
。
这样,您就不必担心对库项目未知的类的奇怪访问。