【问题标题】:android: ListEntry class, handling listview item clickandroid:ListEntry类,处理listview项点击
【发布时间】:2014-03-28 07:08:28
【问题描述】:

我知道这可能很简单,但是...

我正在根据我的 android 应用程序中的 answer 处理列表视图点击。这是使用 ListEntry

的代码
ListEntry entry = (ListEntry) parent.getItemAtPosition(position);

但 Eclipse 无法检测到此类并显示“ListEntry 无法解析为类型” 我用谷歌搜索了“ListEntry”类,但找不到任何相关信息,那么我的错误在哪里?

抱歉英语不好。 谢谢

编辑: 这是我的 onLoadFinished 方法”

    @Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
    // TODO Auto-generated method stub


    arg1.moveToFirst();
    simpleCursorAdapter = new SimpleCursorAdapter(
            getApplicationContext(),
            android.R.layout.simple_list_item_1,
            arg1,
            new String[] {  "wname" }, 
            new int[] { android.R.id.text1 },
            CursorAdapter.IGNORE_ITEM_VIEW_TYPE);

    listview.setAdapter(simpleCursorAdapter);
    simpleCursorAdapter.swapCursor(arg1);



}

【问题讨论】:

  • 我相信答案中的 ListEntry 是一个用于存储数据的自定义类。您将 List(ArrayList) 传递给附加到 ListView 的适配器。您到底在这里寻找什么?填充列表?或者获得列表项的点击?
  • ListEntry 是一个自定义类,用于显示您的列表项。
  • @IPL 感谢您的回答
  • @Keya,谢谢,我想获取单击的列表视图项目。我使用了带有“android.R.layout.simple_list_item_1”布局的默认android listview

标签: android listview android-listview listviewitem onitemclicklistener


【解决方案1】:

从 ListView 开始,在你的 XML 布局中声明它:

您可以直接在 XML 本身中填充一个列表,为其提供一个字符串数组。或者,如果您想动态填充它,例如。读取数据库,需要在对应的Activity中进行。这是您通过适配器实现的。适配器管理您的数据并使其适应列表视图的行。

MyListAdapter 是您需要创建扩展 BaseAdapter 的适配器类。您需要为适配器提供一个列表,它将显示在您的视图中。

String[] values = new String[] { "Apple", "Banana", "Cherry" };

final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
  list.add(values[i]);
}

myListAdapter = new MyListAdapter(this, list);
listView.setAdapter(myListAdapter);

如果要修改数据(即显示图标等)或重新格式化字符串,则需要创建自定义适配器。您可以将 android 框架提供的适配器数量用于 ArrayAdapter 等常见用途。

您可以添加侦听器来检测列表项的点击:

listView.setOnItemClickListener(new OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   
      // do something here
 }
}); 

您可能会发现本教程很有用。 http://www.vogella.com/tutorials/AndroidListView/article.html

希望对您有所帮助。请回来查询更多信息。

【讨论】:

  • 这是关于列表视图的明确答案,现在如果我使用 simpleCursorAdapter 用数据库填充我的列表视图。现在获取点击项目文本的最佳实践是什么? .....你写:“在这里做点什么”
  • 你可以这样做: parent.getItemAtPosition(position);或者,如果您将 TextView 作为子视图,您可以执行以下操作: ((TextView) view).getText().toString();
  • 是的,你能解释一下这两种方式吗?
  • 您能否分享填充适配器的代码,即有哪些数据以及您在适配器类中做什么?如果我知道您在适配器中设置了什么,我将能够帮助您解决您面临的确切问题。
  • 你可以让你的Activity扩展ListActivity并覆盖onListItemClick。参考:[link]developer.android.com/reference/android/app/…你可以使用:Cursor cursor = adapter.getCursor(); cursor.moveToPosition(位置);一旦有了游标,就可以从列中获取数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 2012-04-01
  • 2023-03-22
  • 2011-10-31
相关资源
最近更新 更多