【问题标题】:add onClick listener on Android ListView With SimpleAdapter使用 SimpleAdapter 在 Android ListView 上添加 onClick 监听器
【发布时间】:2011-12-07 15:53:42
【问题描述】:

我没有通过搜索找到解决方案:(

我正在编写一个用于阅读 RSS 提要的应用程序。
我正在使用列表视图将每个提要的屏幕标题和描述放入 2 个文本视图中。我通过 SimpleAdapter 意识到了这一点。

在我的项目中,我有 2 个类:MainActivity 和 AsynkTask。 在 mainActivity 我执行读取 RSS 并将它们放入适配器和列表视图的 asyncTask

现在,如何在列表视图上添加一个点击监听器,以便在浏览器中打开每个提要?

我希望我已经正确解释了这个问题,我很抱歉我的英语很糟糕! 谢谢大家。

PS:如果你需要我的一些代码,我会发布它。

【问题讨论】:

标签: android android-listview onitemclicklistener


【解决方案1】:

在 MainActivity 的 onCreate 方法中,如果是 ListActivity,则需要像这样获取对列表视图的引用:

ListView lv = getListView();

然后像这样添加一个点击监听器:

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) { 
  //Open the browser here
}

【讨论】:

  • 在第一行,Eclipse 向我发送此错误:“方法 getListView() 未定义为 MainActivity 类型”
  • 您是在布局中添加列表视图并使用普通 Activity 还是使用 ListActivity? ListActivity 专为仅将列表视图作为元素的活动而设计。如果您正在使用 Activity 并且布局上有 ListView,则需要像这样访问它: ListView lv = (ListView) findViewById(R.id.idOfListViewOnLayout);
  • 好的,完成.. 但是当我调用 setonitemclicklistener ecrise 时向我发送此错误:此行有多个标记 - OnItemClickListener 无法解析为类型 - AdapterView 类型中的方法 setOnItemClickListener(AdapterView.OnItemClickListener) 不适用于参数 (new OnItemClickListener(){})
  • 你是否在你的类中导入 OnItemClickListener:import android.widget.AdapterView.OnItemClickListener;
  • 是的,对不起,我已经以这种方式解决了..对不起我的错误......只是一个解释..占据我点击的元素的位置我该怎么办?我已经尝试使用 lv.getSelectedItemPosition() 但 eclipse 告诉我 lv 必须是最终变量,但当我单击时将 lv 声明为最终应用程序崩溃:S
【解决方案2】:

在您的列表视图中,您需要使用 setOnItemClickListener

【讨论】:

  • 我必须将此属性设置为 AsynkTask 类或 mainActivity 类?
猜你喜欢
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2018-08-30
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
相关资源
最近更新 更多