私はレイアウトをロードしているライブラリプロジェクトを作成し、アプリケーションプロジェクトから呼び出すメソッドを定義するシナリオがあります。アクティビティメソッドは、他のクラスのアンドロイドでoncreateの前に呼び出されます
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);
下に使用することにより、他のプロジェクトからこれを実行すると、私の方法にsetDataは、OnCreateのようfindviewbyid私ヌルを与える前に、最初の呼び出し得たので は、だから私はbChartにNULLポインタを得ましたbChartです。
「Bundle」を介してそのデータを渡します。 – azizbekian
SetDataメソッドは、このメソッドが呼び出される前にロードする必要があるビューを持っています。データを渡すことができますが、ビューがロードされていないため、メソッドがコールを最初に取得するため、NULLポインタを取得します。 –