私はこの1つのアクティビティのレイアウトが異なります。複数のレイアウトで動作しないInjectview(Roboguice)
私はそれぞれが開いてレイアウトを使ってそれぞれのクラスを開きます。
これらのクラスを@Inject経由でアクティビティに挿入します。これは問題ありません。
しかし、アクティブでないレイアウトにあるコントロールの1つで@InjectViewを使用しようとすると、エラーが発生します。
11月2日19:17:31.086:ERROR/AndroidRuntime(1326): java.lang.NullPointerExceptionが:によって引き起こさクラス be.baes.notes.View.EditNoteImplにヌル値を注入することはできません。フィールドが@ Nullableでない場合の.saveButton
これはコードになります。
public class EditNoteImpl implements EditNote {
@Inject CancelEditNoteClickListener cancelEditNoteClickListener;
@Inject SaveNoteClickListener saveNoteClickListener;
@Inject Provider<Activity> activity;
@InjectView(R.id.saveButton) Button saveButton;
/* (non-Javadoc)
* @see be.baes.notes.EditNote#activateEditNote()
*/
@Override
public void activateEditNote()
{
activity.get().setContentView(R.layout.editnote);
this.saveButton.setOnClickListener(saveNoteClickListener);
}
}
私はこれを行うことができます。
public class EditNoteImpl implements EditNote {
@Inject CancelEditNoteClickListener cancelEditNoteClickListener;
@Inject SaveNoteClickListener saveNoteClickListener;
@Inject Provider<Activity> activity;
private Button saveButton;
/* (non-Javadoc)
* @see be.baes.notes.EditNote#activateEditNote()
*/
@Override
public void activateEditNote()
{
activity.get().setContentView(R.layout.editnote);
saveButton = (Button)activity.get().findViewById(R.id.saveButton);
this.saveButton.setOnClickListener(saveNoteClickListener);
}
}
これを行う良い方法がありますか?
Button @ Nullableを作成する理由はありませんか? –
私はそれを試みましたが、それはボタンのどちらも注入しません。 – chrissie1
RoboGuice 2.0を使用していますか?これは* 2.0 *で動作する可能性があります – emmby