如何为OnItemClick方法提供正确的上下文才能正常运行?

时间:2012-06-06 03:45:10

标签: android onitemclicklistener

我有这段代码:

list.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Cursor cursor = databaseHelper.getAgendaToEdit(id);
            Intent intent = new Intent(view.getContext(), EditAgendaActivity.class);
            cursor.moveToFirst();
            intent.putExtra("id", cursor.getString(0));
            startActivity(intent);
        }
    });

,错误是:

java.lang.InstantiationException: can't instantiate class com.zeroe.EditAgendaActivity; no empty constructor

目标是在单击列表中的项目时启动新活动。我从我的主要活动中调用这个方法,

list 

也来自。我认为问题来自于我没有从ListView所在的位置获取上下文。问题是它应该工作,因为我提供正确的上下文,至少我假设。非常感谢你的帮助。

如果有人需要我澄清,请告诉我,我会立即这样做。

1 个答案:

答案 0 :(得分:2)

您的Activity子类都需要默认构造函数。显然EditAgendaActivity没有。这就是问题所在,而不是你发布的代码。

通常,您应该只有Activity子类的默认(no-arg)构造函数或根本没有构造函数(并让编译器为您生成一个无参数构造函数)。