2010-06-07 123 views
8

我有下面的代码访问ListView的项目值到字符串中,并显示在警报?如何获得在Android中单击的Listview项目的值?

ListView shot = getListView(); 
shot.setOnItemClickListener(this); 

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 

    String S = arg1.getContext().toString(); 
    AlertDialog.Builder alertbox = new AlertDialog.Builder(this); 

    // set the message to display 
    alertbox.setMessage(S).show();  
} 
+1

请多花点心思问问题。我无法完全理解你的问题。你想做什么?什么工作什么不是? – Janusz 2010-06-07 10:02:59

+1

提示:请勿使用'arg0','arg1'等作为参数名称。它使源代码完整无法读取。其中之一就是你正在寻找的信息,所以如果你使用了正确的名字,你就不需要问这个问题。 – RoToRa 2010-06-07 10:18:20

回答

16

也许这个例子可以帮助你

lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     // When clicked, show a toast with the TextView text 
     Toast.makeText(getApplicationContext(), ((TextView) view).getText(), 
      Toast.LENGTH_SHORT).show(); 
    } 
    }); 

https://developer.android.com/reference/android/widget/ListView.html

0

也许你可以试试这个

String data = (String)shot.getItemAtPosition(arg2); 
AlertDialog.Builder adb = new AlertDialog.Builder(arg1.getContext());    
adb.setMessage(data).show(); 
10

这给你的项目的精确值点击。检查日志

ListView shot = getListView(); 
shot.setOnItemClickListener(this); 

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

    String val =(String) parent.getItemAtPosition(position); 
    System.out.println("Value is "+val); 
} 
+0

为我启动了一个ClassCastException! – bofredo 2013-04-03 13:33:43

相关问题