在图书馆工程建设路径中包含主项目的正确方法

时间:2014-09-03 05:27:01

标签: java android eclipse android-activity android-service

我有两个项目,A(主项目)和B(图书馆项目)。 B包含在A的构建路径中。我必须从A的某些活动开始B的一些活动。这个工作正常,直到最近,我必须从B的活动开始A的活动。

要做到这一点,我尝试将A添加到B的构建路径,但是这样做,是在无限循环中运行构建过程。所以,显然,这不是实现我想要的正确方法。

我的问题是,如何从主项目中包含的图书馆访问主项目的课程?

2 个答案:

答案 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

这样,您就不必担心对库项目未知的类的奇怪访问。