【问题标题】:ListView: onItemLongClick Toasts ObjectListView:onItemLongClick Toasts 对象
【发布时间】:2013-09-24 11:44:02
【问题描述】:

我想在 ListView 中为所选列表项的文本敬酒。我正在使用自定义适配器。我试过这段代码。

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,final int pos,
        final long id) {
    String text=String.valueOf(lv.getItemAtPosition(pos));
    Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();
  }

但它是像 com.demo.CustomList@413ffb10 这样的 Toasting 对象名称。谁能告诉我如何祝酒各自的项目?

注意:以上代码适用于简单适配器,但不适用于自定义适配器

【问题讨论】:

  • 您要敬酒什么?所选列表项的位置或所选列表项的文本?
  • 我只想烤文本。
  • 发布您的自定义 adapetr

标签: android android-listview onlongclicklistener


【解决方案1】:

假设列表视图根据您的代码具有 CustomList 类型的对象,它将显示 CutsomList 类的默认 toString() 方法。相反,您应该访问要显示的变量并对其进行烘烤。

例如:

       public class CustomList {
                  String title;

        public String getTitle(){
        return name;
        }
}

并且在 onClick 中您可以执行以下操作:

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,final int pos,
        final long id) {
     CustomList customList= (CustomList )lv.getItemAtPosition(pos);

    Toast.makeText(getActivity(), customList.getTitle(), Toast.LENGTH_SHORT).show();
  }

这正是您正在寻找的。希望对您有所帮助。

【讨论】:

  • 如何获取 CursorAdapter 的 ListView 项?这次我越来越喜欢 android.database.sqlite.SQLiteCursor@41413280
【解决方案2】:

我不知道你的custom list view 的结构。但是,如果您想从您的custom list view 中获取toast TextView 的值,请执行以下操作:

String text= (TextView)view.findViewById(R.id.YOUR_LIST_ITEM_TEXT_VIEW).getText();
Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();

【讨论】:

    【解决方案3】:

    试试这个

    String text=parent.getItemAtPosition(pos).toString();
    Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT).show();
    

    【讨论】:

      【解决方案4】:

      getItemAtPosition() 方法返回属于适配器使用的数据结构的对象,而不是图形小部件的实例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-21
        • 1970-01-01
        • 2018-10-20
        • 2016-02-04
        • 2019-12-16
        • 1970-01-01
        相关资源
        最近更新 更多