2012-04-07 47 views
0

出于某种原因,无论点击哪个项目,这只会返回列表中第一个项目的名称。我不知道为什么它没有返回正确的名称。基本上我只想找到名称,以便我可以搜索该名称的名单,以便我可以在数组中找到它的位置。单击时从ListView中的项目获取字符串名称。 Android

myTask.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // When clicked, show a toast with the TextView text 
      String name = ((TextView)view).getText().toString(); 
      for (int i = 0; i < ToDoActivity.myUser.taskCount; i++){ 
       if(name == ToDoActivity.myUser.tasks[i].getTaskName()) 
        clickTask = i; 
      } 
      Intent myIntent = new Intent(view.getContext(), TaskEdit.class); 
      view.getContext().startActivity(myIntent); 
     } 

谢谢 Dlong

回答

1

如果我理解你想要做什么,你可以简单地使用position说法onItemClick

clickTask = position; 
+0

不引用位置列表而不是数组中的位置?如果我对列表进行排序只显示某些项目,那么位置变量将对应于阵列中正确的位置? – user433047 2012-04-07 19:53:15

0

使用 “位置” 值正在传递给你。它告诉你哪个索引被按下。

0

替换此行:

if(name == ToDoActivity.myUser.tasks[i].getTaskName()) 

这一行:

if(name.equals(ToDoActivity.myUser.tasks[i].getTaskName())) 
+0

尽管技术上属实,但Binyamin Sharet的答案更符合用户应该做的事情 – JRaymond 2012-04-07 19:26:33