Android Intent似乎不起作用 - 需要帮助!

时间:2011-03-20 18:44:15

标签: android android-intent

所以我的情况就是这样。我有两张桌子,例如员工和部门。制作新员工时,会有一个从部门数据库中填充的微调器,当选择它时,它会将其插入到员工表中的字段中。

我要做的是拥有一个部门列表,一旦点击部门,它就会显示属于该部门的所有员工。

所以我到目前为止,第一个代码来自我的班级,显示了部门列表:

    protected void onListItemClick(ListView l, View v, int position, long empDept) {
        super.onListItemClick(l, v, position, empDept);
        Intent i = new Intent(this, EmployeeActivity.class);
        i.putExtra(DatabaseAdapter.DEPT_NAME, empDept);
        startActivityForResult(i, ACTIVITY_START); 
    }

我将此传递给员工列表活动,我已经通过显示所有内容来测试代码,因此它在某种程度上有效但当我尝试按选定的部门名称查看时它没有返回任何内容,这里是部分收到意图的类:

private void fillData() {

        Bundle extras = getIntent().getExtras(); 
        long result = extras.getLong("empDept");

        Cursor empCursor= DbHelper.getEmpByDept(result);

        startManagingCursor(empCursor);

这是我的数据库查询:

 public Cursor getEmpByDept(long empDept)
 {
     return mDb.query(EMP_TABLE, new String[] { EMP_ID, EMP_TITLE,
                EMP_NOTES, EMP_DATE_TIME, EMP_DEPT }, EMP_DEPT + "=" + empDept, null,
                null, null, null, null);
 }

因此,我所要做的只是在部门点击时与雇员EMP_DEPT字段中的员工进行比较时显示员工。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

extras.getLong()中输入是捆绑的密钥,即DatabaseAdapter.DEPT_NAME而不是"empDept"。另外,请确保密钥DatabaseAdapter.DEPT_NAME包含doc中指示的正确包裹前缀。

顺便说一句:您不需要查询中的最后一个null是可选的,并且引用LIMIT(如果您没有)