在SimpleCursorAdapter中实现OnItemClick

时间:2011-11-11 15:01:41

标签: android

我有一个SimpleCursorAdapter类,我希望每次单击该行时都设置一个OnItemClick方法。

方法如下:

protected void onItemClick(AdapterView<?> l, View v, int position, long id) {
            Intent listIntent = new Intent(DetailsActivity.class,this);
            listIntent.putExtra("spendino.de.ProjectDetail.position",position);

            listIntent.setData(Uri.withAppendedPath(Uri.withAppendedPath(
                    Provider.CONTENT_URI, Database.Project.NAME), Long
                    .toString(id)));

            startActivity(listIntent);
}

但它总是在这一行上给我一个错误:Intent listIntent = new Intent(DetailsActivity.class,this); 它要求我删除参数。

有人可以帮我吗?

已更新

@Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            View convertView = mInflater.inflate(R.layout.listitems, null);
            convertView.setClickable(true);
            convertView.setFocusable(true);
            convertView.setBackgroundResource(android.R.drawable.menuitem_background);
            convertView.setOnItemClickListener(ProjectsList.this);

            return convertView;
        }

第一个解决方案没有给我任何错误,但是当我在View上设置方法时,它表示setOnItemClickListener未定义为convertView

已更新

convertView.setOnClickListener(new OnClickListener() {
                 public void onClick(View view) {
                  Intent myIntent = new Intent(view.getContext(), DetailsActivity.class);
                  myIntent.putExtra("spendino.de.ProjectDetail.position",position);
                  myIntent.setData(Uri.withAppendedPath(Uri.withAppendedPath(
                            Provider.CONTENT_URI, Database.Project.NAME), Long
                            .toString(id)));
                  view.getContext().startActivity(myIntent);
                 }
                });

setOnClickListener无法正常工作,我在'position'和'id'上出错了我应该怎么声明它? 因为这两件事主要在setOnItemClickListener方法

上找到

1 个答案:

答案 0 :(得分:2)

Intent listIntent = new Intent(DetailsActivity.class,this);

这应该是另一种方式

Intent listIntent = new Intent(this, DetailsActivity.class);

或使用MyActivity.this作为第一个参数。

covertView.setOnClickListener()

使用此.. onItemClickListener用于listView。但convertView只是一个列表Item ..