2015-04-01 121 views
-1

这是我的代码到目前为止。这是工作,但它只显示我在listView中的第一个值,而不是用户选择的项目。请用这个来激励我。这非常重要。如何从列表视图中的选定项目获取值?

 unitListView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); 

      unitListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 

        // selected item 
       TextView t1 = (TextView) findViewById(R.id.lblLUnitName); 

       String name=t1.getText().toString(); 

      // String a= (String) unitListView.getItemAtPosition(position); 

         // touchpressed=position; 
        Toast.makeText(getApplicationContext(), "Selected Item :" +name, Toast.LENGTH_SHORT).show(); 

     } 
    }); 
+1

相反的TextView T1 =(TextView的)findViewById(R.id.lblLUnitName)的;你可以请尝试TextView t1 =(TextView)view.findViewById(R.id.lblLUnitName); – 2015-04-01 16:31:06

+0

Ohhhh yessss !!!它正在工作!谢谢你太多了! – 2015-04-01 16:55:43

+0

太棒了。一个upvote将不胜感激:) – 2015-04-01 17:58:43

回答

0

查看只是为了显示UI上的一些值。如果您想获得实际的价值,请使用position从您的ListAdapter中获取价值。

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    YourItemClass item = (YourItemClass)listAdapter.getItem(position); 
    //[...] 
} 

另一种方法是从你的unitListView直接拿到ListAdapter

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    Object item = unitListView.getAdapter().getItem(position); 
    //[...] 
} 
0

更新你的代码如下,并尝试;

 unitListView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); 
     unitListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

      TextView t1 = (TextView) findViewById(R.id.lblLUnitName); 
      String name=String.valuesOf(position); 
      Toast.makeText(getApplicationContext(), "Selected Item :" +name, Toast.LENGTH_SHORT).show(); 

    } 
}); 
+0

一旦我改变像TextView t1 =(TextView)view.findViewById(R.id.lblLUnitName);这是工作!感谢您的帮助.. :) – 2015-04-01 16:58:33

0

替换
TextView t1 = (TextView) findViewById(R.id.lblLUnitName);

通过

TextView t1 = (TextView) view.findViewById(R.id.lblLUnitName); 
相关问题