2014-01-14 41 views
-3

我有一个数据库(db)从我得到的值(名称,电子邮件地址,电话号码等),我把它放在一个列表中并显示在一个ListView中。如果我点击一个项目,我可以从点击的项目中获取整个数据?因为我需要前。电邮地址发送电子邮件。我可以从项目中提取数据,因为从数据库中获取数据时是“客户”类型。从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 


     } 
    }); 
+0

http://stackoverflow.com/questions/16259960/get-data-from-listview-when-clicking-listviews-child 这个答案可能会帮助 –

+0

这是一个有点不清楚,你打算怎么做:当你点击一排,你需要什么?只收邮件?获取所有数据?你想用它做什么?显示一个contextmenu?执行一个动作...? – nKn

+0

长按一下,弹出一个上下文菜单,其中包含选项呼叫,发送电子邮件到选定的项目,我需要发送电子邮件ex到客户端上选定的ListView项目,但我需要这些数据(邮件地址,电话号码等)。我怎样才能调用这些数据? – user3190360

回答

1

您不要“您需要从您的ListView本身提取数据,只需填写您用于填充列表的Array

由于onItemClick(...)给你点击的项目的position,您可以...

  • 使用您的ArrayAdapter拿到项目:

    adapter.getItem(position)

  • 从获取数据您的原始列表:

    list.get(position)

在这两种情况下,由于要从一个匿名内部类检索数据(您的OnItemClickListener)中问题adapterlist需要是一个实例变量,而不是一个局部变量(即将adapterlist定义为您班级的一部分,超出您的所有方法)。

0

您可以通过位置得到ArrayAdapter数据的AdapterView.OnItemClickListener:对象List<Client>

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

,我可以看到你的代码,你会得到列表中,使

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

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

         Client client = list.get(position) ; 


    } 
}); 

由于位置请参阅您选择的索引列表

相关问题