所以我對這個Activity有不同的佈局。Injectview(Roboguice)不能使用多個佈局
而且我有不同的課程,每個課程都打開並使用佈局完成自己的任務。
我通過@Inject在活動中注入這些類。這一切都沒有問題。
但是,當我嘗試使用@InjectView在一個非活動佈局的控件之一時出現錯誤。
11-02 19:17:31.086:ERROR/AndroidRuntime(1326): 顯示java.lang.NullPointerException:致不能注入空值成 類be.baes.notes.View.EditNoteImpl .saveButton當字段不爲@Nullable時
這就是代碼。
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