Android:活动中的onListItemClick

Vic*_*c V 11 java eclipse android lazylist

上一次我在这里问了一个问题,我学到了很多东西,所以我觉得值得再试一次.

我在这个链接中使用Fedor的懒惰列表: 在ListView中延迟加载图像

它的工作就像一个魅力.但是,Fedor正在使他的主要课程延伸Activity而不是ListActivity.因此,我不再能够使用listItemClick侦听器.Eclipse声明了一些错误onListItemClick().它在我转弯时起作用

    @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
     // Intent launcher here
}
Run Code Online (Sandbox Code Playgroud)

   protected void onListItemClick(ListView l, View v, int position, long id) {
     // Intent launcher here
   }
Run Code Online (Sandbox Code Playgroud)

但意图启动器不起作用.祝酒通知也没有.

当我转入Activitya时ListActivity,Eclipse并没有错开,但是我的模拟器给了我一个力量.

如何得到

  • 要么onListItemClick()点击活性(优选)
  • 或者我将代码转换为ListActivity无力关闭?

非常感谢提前.

Fal*_*rri 30

listItemClickListener附加到ListView.当您更改ListActivityActivity,你的类不再有与之相关联的视图,从而一Activity类具有不知道该怎么做的onListItemClickListener.

你只需要将一个监听器附加到你的ListView:

listview.setOnItemClickListener(new OnItemClickListener(){
    @Override
    protected void onListItemClick(AdapterView<?> parent, View view, int position, long id){
        //Do stuff
    }
});
Run Code Online (Sandbox Code Playgroud)


Vin*_*ssh 1

我的答案写为:

1) @Falmarri 的代码需要一些更新
2) 我建议的编辑被完全拒绝了 XD
3) Stackoverflow 不允许我写评论。

这是代码:

ListView listView = (ListView) findViewById(R.id.my_listview_in_layout);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){
        //Do stuff
        //...
    }
});
Run Code Online (Sandbox Code Playgroud)


参考:根据android.widget.AdapterView.OnItemClickListener,公共方法 onItemClick() 是单击项目时调用的方法 {而不是未知的受保护方法 onListItemClick() }