Activity方法在其他类的android中的oncreate之前调用

时间:2017-04-26 07:51:38

标签: android

我有一个场景,我已经创建了库项目,我在其中加载布局以及定义我想从Application项目中调用的方法。

public class LibraryActivity {


public LibraryActivity() {

}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.barchart_layout);
    bindViews();

}


   public void bindViews() {

        bChart = (BarChart)findViewById(R.id.barchart);
}

   public  void setData(int count, float range) {

   //definition of the method
  // I have to user bChart view here 
  System.out.println("part 1 "+bChart); <---- this is null
}

现在我已成功创建了AAR项目,我想从其他项目中使用此setData。 所以当我从另一个项目中运行它时使用下面的代码

Intent in = new Intent(MainActivity.this,LibraryActivity.class);
            startActivity(in);

            LibraryActivity barChartCallBack = new LibraryActivity();
            LibraryActivity.setData(15,25);

我在 bChart 上获得了空指针,因为我的方法setData在oncreate之前首先调用了所以 findviewbyid 给了我 null < / strong>对于 bChart

1 个答案:

答案 0 :(得分:3)

您正在完全不同的LibraryActivity对象上设置数据。首先你告诉系统有意启动一个,然后你启动另一个没有显示,但你用它来调用setData。

在Android开发者网站上阅读:

https://developer.android.com/training/basics/firstapp/starting-activity.html

基本上你需要通过extras传递数据。