简体   繁体   中英

how to use a project as a library api in another project in android?

I have a splitview project using fragment in android, where i used some method to generateviews, define width of the splits and a method to set the background colour, here is my java code:

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);
        }

    }
}

now I want to use this code as a library in another project and just want to call these methods to generate views, define width and setbackground colour. I have tried in different ways, but nothing was able to solve my problem. Can any one help me with a simple example?

I currently do this with a plain java project. To include I configured in the build path

a) Project:

just add your project

b) Order and Export

select (check) your project

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

Create your new android project in Eclipse then go to your existing project and

Properties => Android => is library project => tick this

Then in the new project go to

Properties => Android => add library project then select your lib project from the list

You must leave the lib project open. This same method is used by Facebook and actionbar Sherlock.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM