ここでは何が欠けているのか分かりませんが、フラグメントを作成してFragmentManagerを使用して追加します。その後、レイアウトに提供された情報(Toolオブジェクト)をロードするはずのフラグメントからメソッドを実行します。 InfoActivity.javaでフラグメントの実行前にonCreateViewが呼び出されていない
:ビューが作成される前に何とか方法が実行されているため
public class InfoActivity extends AppCompatActivity{
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCatIndex = getIntent().getExtras().getInt("catIndex", 0);
mToolIndex = getIntent().getExtras().getInt("toolIndex", 0);
// If we are in two-pane layout mode, this activity is no longer necessary
if (getResources().getBoolean(R.bool.has_two_panes)) {
finish();
return;
}
// Place an InfoFragment as our content pane
InfoFragment f = new InfoFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, f).commit();
// Display the correct tool info on the fragment
Tool tool = ToolsSource.getInstance(this).getCategory(mCatIndex).getTool(mToolIndex);
f.displayTool(tool);
}
}
しかし、レイアウトオブジェクトが初期化されていません。
なぜあなたはonCreateViewの終わりにdisplayToolを呼び出していけませんか? –
私は、最初のビットが同じクラスからではなく、異なるクラスのInfoActivityからのものであることを明確にすべきです。クラスの宣言を明確にするために編集しました。 – NappyXIII
あなたの 'setContentView'はどこにありますか? –