如何在android中的另一个项目中将项目用作库api?

时间:2012-03-30 07:46:54

标签: java android

我有一个在android中使用片段的splitview项目,其中我使用了一些方法来生成视图,定义了分割的宽度以及设置背景颜色的方法,这里是我的java代码:

public class SplitviewActivity extends FragmentActivity implements
        Left.OnButtonClickListener {

    LinearLayout LEFT, RIGHT, leftfragmentln, rightfragmentln;
    Right rightFr;
    Left leftFr;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //reduced the Gray Bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);


        setContentView(R.layout.main);
        // initializes the objects
        initializer();

        // sets the size of the two sides, give the ration here
        setSize(20, 80);
        // sets the colour of the two sides
        setColor(Color.BLUE, Color.RED);

    }

    public void initializer() {
        LEFT = (LinearLayout) findViewById(R.id.lnLeft);
        RIGHT = (LinearLayout) findViewById(R.id.lnRight);
        leftfragmentln = (LinearLayout) findViewById(R.id.lnLeftFragment);
        rightfragmentln = (LinearLayout) findViewById(R.id.lnRightFragment);
        rightFr = (Right) getSupportFragmentManager().findFragmentById(
                R.id.view_right);
        leftFr = (Left) getSupportFragmentManager().findFragmentById(
                R.id.view_left);

    }

    public void setColor(int leftColor, int rightColor) {

        // for landscape mode
        if ((rightFr != null) && rightFr.isInLayout() && (leftFr != null)
                && leftFr.isInLayout()) {

            LEFT.setBackgroundColor(leftColor);
            RIGHT.setBackgroundColor(rightColor);
        } else {
            // for portrait mode
            RIGHT.setBackgroundColor(rightColor);

        }

    }

    public void setSize(float leftsize, float rightsize) {

        // for landscape mode
        if ((rightFr != null) && rightFr.isInLayout() && (leftFr != null)
                && leftFr.isInLayout()) {

            android.widget.LinearLayout.LayoutParams par1 = (LayoutParams) LEFT
                    .getLayoutParams();

            android.widget.LinearLayout.LayoutParams par2 = (LayoutParams) RIGHT
                    .getLayoutParams();
            par1.weight = rightsize;
            par2.weight = leftsize;

        }

    }

    // a method to add view in a blank xml programatically
    public void setView(View leftView, View rightView) {
        if ((rightFr != null) && rightFr.isInLayout() && (leftFr != null)
                && leftFr.isInLayout()) {
            leftfragmentln.addView(leftView);
            rightfragmentln.addView(rightView);
        } else {

            rightfragmentln.addView(rightView);

        }
    }

    @Override
    public void onClickButton(String s) {

        if ((rightFr != null) && rightFr.isInLayout()) {
            rightFr.setText(s);
        } else {
            Intent intent = new Intent(this, RightActivity.class);
            intent.putExtra("value", s);
            startActivity(intent);
        }

    }
}

现在我想将此代码用作另一个项目中的库,只想调用这些方法来生成视图,定义宽度和设置背景颜色。我尝试过不同的方式,但没有什么能解决我的问题。任何人都能用一个简单的例子来帮助我吗?

4 个答案:

答案 0 :(得分:0)

我目前使用普通的java项目执行此操作。 包括我在构建路径中配置

A) 项目:

只需添加您的项目

b)中 订单和出口

选择(检查)您的项目

答案 1 :(得分:0)

右键单击项目窗格中的项目 - >属性 - > Java构建路径 - >项目或图书馆之一!

答案 2 :(得分:0)

在Eclipse中创建新的android项目,然后转到现有项目和

属性=> Android =>是图书馆项目=>打勾这个

然后在新项目中转到

属性=> Android =>添加库项目,然后从列表中选择您的lib项目

您必须让lib项目保持打开状态。 Facebook和Actionbar Sherlock使用了同样的方法。

答案 3 :(得分:0)

右键点击你另一个项目 - >属性 - >选择过滤器类型为android ==>然后转到库==>点击添加===>选择您的项目。