意图点击项目不起作用

时间:2013-03-02 07:15:48

标签: android android-intent onitemclicklistener

    lv.setAdapter(adp);
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            Cursor c = (Cursor)arg0.getItemAtPosition(arg2);
            call = c.getString(0);
            Intent i = new Intent(null, Ldetail.class);
            i.putExtra("id",call);
            startActivity(i);

5 个答案:

答案 0 :(得分:3)

更改此行。

Intent i = new Intent(null, Ldetail.class);

而不是null使用context或activityname.this。您必须传递上下文或活动名称。

Intent i = new Intent(YourCurrentActivityName.this, Ldetail.class);

Intent i = new Intent(getBaseContext(), Ldetail.class);

并在android清单文件中声明 Ldetail 活动。

答案 1 :(得分:1)

试试这个而不是null使用getapplicationcontext()..

答案 2 :(得分:0)

  usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

这里使用了View of Adapter View,它是自定义适配器的父类。这就是为什么它不起作用。相反,您应该使用自定义适配器视图。

这里的 getView()函数可以帮助您将Parent Adpater View视图转换为自定义适配器视图。

所以你使用两个选项中的任何一个,

usersList.setOnItemClickListener(new CustomAdapterView.OnItemClickListener() {

usersList.setOnItemClickListener(new OnItemClickListener() {

答案 3 :(得分:0)

为什么传递null而不是上下文?
在意图中添加你的上下文

Intent i = new Intent(yourclassname.this, Ldetail.class);

答案 4 :(得分:0)

 Intent i = new Intent(null, Ldetail.class);
        i.putExtra("id",call);
        startActivity(i);

您必须传递上下文或活动。

     Intent i = new Intent(this, Ldetail.class);

Intent i = new Intent(getBaseContext(), Ldetail.class);