我正在查看android教程中的Noteadv2。一切都工作只是笨拙的海鲂,但一件小事。我的“确认按钮”没有点击监听器。我知道为什么会发生这种情况并且解决方案中的代码实际上是相同的,但是教程给你的期望是你应该能够创建和删除一个注释。到目前为止......没有好处。
因此,我们在Notepadv2.onMenuItemSelected(...)中创建活动时启动调用堆栈。它说的是这样的东西:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case INSERT_ID:
createNote();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
然后我们的朋友createNote()说:
private void createNote() {
Intent i = new Intent(this, NoteEdit.class);
startActivityForResult(i, ACTIVITY_CREATE);
}
所以android很好地路由了一个请求,并根据我们的清单给我们一个NoteEdit类。到目前为止一切都很棒这是NoteEdit.onCreate()中的有趣位:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_edit);
setTitle(R.string.edit_note);
mTitleText = (EditText) findViewById(R.id.title);
mBodyText = (EditText) findViewById(R.id.body);
Button confirmButton = (Button) findViewById(R.id.confirm);
mRowId = null;
Bundle extras = getIntent().getExtras();
if (extras != null) {
最后两行是关键。在此之后,我们在确认按钮上添加一个click事件监听器,该监听器永远不会完成。
当我们从目前的活动意图中抽出额外的东西时,那些额外的东西不在那里。有道理吗?它们从未被设置,因为这是新的..因为额外的是null,if语句退出,我们在调试时卡在编辑屏幕上。
我错过了默认设置吗?我是不是跳过了一步,或者是再次玩傻傻的玩家?
感谢阅读。
答案 0 :(得分:0)
好吧......我的蠢事。我应该在if语句中完成侦听器附件,而它应该在该语句之外。
我逐步完成了解决方案文件并找到了这个区别。糟糕!