我有一个场景,我已经创建了库项目,我在其中加载布局以及定义我想从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 。
答案 0 :(得分:3)
您正在完全不同的LibraryActivity对象上设置数据。首先你告诉系统有意启动一个,然后你启动另一个没有显示,但你用它来调用setData。
在Android开发者网站上阅读:
https://developer.android.com/training/basics/firstapp/starting-activity.html
基本上你需要通过extras传递数据。