2010-03-12 60 views
6

当我尝试获取已填充的列表视图上的选定项目位置时,获取-1值。Android:List View Selected item -1

list.setOnItemClickListener 
(
    new AdapterView.OnItemClickListener() 
    { 
     public void onItemClick(AdapterView adapterView, View view,int arg2, long arg3) 
     { 
      int selectedPosition = adapterView.getSelectedItemPosition(); 
      ShowAlert(String.valueOf(selectedPosition)); 
     } 
    } 
); 

为了填补我的列表视图我使用下面的代码:

SimpleAdapter mSchedule = new SimpleAdapter(
      this, 
      mylist, 
      R.layout.listviewtest, 
      new String[] {"test1", "test2", "test3"}, 
      new int[] {R.id.TextView_websitename, R.id.TextView_keywords, R.id.TextView_backlink}); 

任何想法?

在此先感谢。

最好的问候。

何塞。

回答

22

这意味着没有选中的行。该documentation指出getSelectedItemPosition()回报:

INT位置(从0开始),或者如果没有选择任何内容, INVALID_POSITION。

INVALID_POSITION-1

请注意,您从OnClickListener呼叫getSelectedItemPosition()。点击和选择不一定相关。选择来自使用D-pad或轨迹球来浏览列表内容。如果用户点击屏幕(或点击模拟器),将不再有选择,但仍然会有点击事件。

您显示的arg2值是列表中单击项目的位置。

+0

令人难以置信的答案,这是非常非常有用的,非常感谢。 此致敬礼。 何塞。 – Sosi 2010-03-12 16:53:22

相关问题