更新:已修复,这是由于视图中缺少属性而我不知道如何使用调试器:)
我是Android新手。我刚刚完成了Notepad教程并且正在制作类似的东西(大部分代码完全相同)。我正在经历的一系列事件:
GoalEdit.onCreate
的第一行遇到断点并收到这些警告:setContentView
GoalEdit.onCreate
处有一个断点 - 在此之后通过:相关代码如下:
GoalsList.java
/**
* Add a menu to this activity
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, 0, R.string.menu_insert);
return true;
}
/**
* Catch the menuItemSelected event
*/
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case INSERT_ID:
createGoal();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
/**
* Open the Edit activity to create a new goal
*/
private void createGoal() {
Intent i = new Intent(this, GoalEdit.class);
startActivityForResult(i, ACTIVITY_CREATE);
}
GoalEdit.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbGoals = new GoalDbTable(this);
mDbGoals.open();
setContentView(R.layout.goal_edit);
mName = (EditText) findViewById(R.id.name);
Button finishBtn = (Button) findViewById(R.id.finish);
mRowId = (savedInstanceState == null) ? null :
(Long) savedInstanceState.getSerializable(GoalDbTable.KEY_ROWID);
if (mRowId == null) {
Bundle extras = getIntent().getExtras();
mRowId = (extras != null) ? extras.getLong(GoalDbTable.KEY_ROWID)
: null;
}
populateFields();
finishBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK);
finish();
}
});
}
private void populateFields() {
if (mRowId != null) {
Cursor goal = mDbGoals.find(mRowId);
startManagingCursor(goal);
mName.setText(goal.getString(
goal.getColumnIndexOrThrow(GoalDbTable.KEY_NAME)));
}
}
@Override
protected void onResume() {
super.onResume();
populateFields();
}
我觉得错误是它无法找到GoalEdit(虽然它显然可以)。我的代码中是否有明显的fubar(或者我应该检查的其他内容)?
编辑:想出如何更好地使用调试器,不得不再按几次简历来显示异常。
例外
ERROR/AndroidRuntime(741):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.rossmasters.mygoals/com.rossmasters.mygoals.GoalEdit}:
java.lang.RuntimeException:
Binary XML file line #9: You must supply a layout_width attribute.
我不确定引用哪个文件,但我已为每个项目添加了layout_width's
。
答案 0 :(得分:1)
Ross启用了logcat,你会得到你的问题,
窗口>显示视图>其他> Android> logcat的
您可能会错过goal_edit.xml布局中的属性