【问题标题】:Get data from Listview? How?从 Listview 获取数据?如何?
【发布时间】:2014-01-14 22:56:17
【问题描述】:

我有一个数据库 (db),我从中获取值(姓名、电子邮件地址、电话号码等),我将其放入列表并显示在 ListView 中。如果我点击一个项目,我可以从点击的项目中获取全部数据吗?因为我需要前任。发送电子邮件的电子邮件地址。我可以从项目中提取数据吗,因为从数据库获取数据时是“客户端”类型。

List list = db.getAllClients();

    final ListView listview = (ListView) findViewById(R.id.listView_ID);
    listview.setClickable(true);

    ArrayAdapter adapter = new ArrayAdapter(this,
            android.R.layout.simple_list_item_1, list);

    listview.setAdapter(adapter);
    registerForContextMenu(listview);

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> parentAdapter, View view,
                int position, long id) {

                            // some code


        }
    });

【问题讨论】:

  • stackoverflow.com/questions/16259960/… 这个答案可能会有所帮助
  • 有点不清楚你打算做什么:当你点击一行时,你需要什么?只收到邮件?获取所有数据?你想用它做什么?显示上下文菜单?执行一个动作...?
  • 长按会弹出一个上下文菜单,其中包含呼叫选项、向选定项目发送电子邮件,我需要在选定的 ListView 项目上向客户端发送电子邮件,但我需要这些数据(邮件地址、电话号码等)。如何调用这些数据?

标签: java android database listview android-listview


【解决方案1】:

您不需要从 ListView 本身中提取数据,只需要从您用来填充列表的 Array 中提取数据。

由于onItemClick(...) 为您提供了被点击项目的position,您可以...

  • 使用您的ArrayAdapter 获取物品:

    adapter.getItem(position)

  • 从原始列表中获取数据:

    list.get(position)

在这两种情况下,由于您是从匿名内部类(您的 OnItemClickListener)中检索数据,因此相关的 adapterlist 需要是实例变量而不是局部变量(即将adapterlist 定义为类的一部分,尤其是所有方法。

【讨论】:

    【解决方案2】:

    您可以通过AdapterView.OnItemClickListener 中的位置从ArrayAdapter 获取数据:

    ((ArrayAdapter) listview.getAdapter()).getItem(position);
    

    【讨论】:

      【解决方案3】:

      我可以看到你的代码,你得到对象列表List&lt;Client&gt; 所以

       listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      
          public void onItemClick(AdapterView<?> parentAdapter, View view,
                  int position, long id) {
      
                             Client client = list.get(position) ;
      
      
          }
      });
      

      因为位置是指列表中选定的索引

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多