2013-06-30 140 views
2

使用「onItemLongClickListiner」時,有什麼方法可以捕獲列表視圖中單擊項目的名稱?我知道我可以捕捉位置等,但我需要一個名字單擊ListView時獲取項目名稱

+0

什麼都貴行包含? textview,按鈕..? – Raghunandan

+0

'name'是什麼意思?如果它是一個textView,你可以得到的文字是! –

+0

如果它在'onItemLongClickListiner'中的文本視圖'String s = listview.getItemAtPosition(position).toString()'。 – Raghunandan

回答

9

我想你ListView與String對象填充:

public boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id) { 
String name = (String) parent.getItemAtPosition(position); 
} 

AdapterView.getItemAtPosition(position)獲取與列表中的指定位置相關的數據。

+0

它不會工作 – pskink

+0

@pskink爲什麼它不會工作 – Blackbelt

+0

哎呀對不起,我把它作爲一個回答不同線程 – pskink

1

您可以使用lv.getItemAtPosition(position)基於索引位置

lv.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> arg0, View v, int position, 
     long arg3) 
{ 
    String name = arg0.getItemAtPosition(position).toString() 
} 
}); 

欲瞭解更多信息

getItemAtPosition

+0

你可以直接使用arg0來獲取物品 – Blackbelt

+0

@blackbelt使用物品ID? – Raghunandan

+1

的位置。看看AdapterView doc [這裏](http://developer.android.com/reference/android/widget/AdapterView.html#getItemAtPosition%28int%29) – Blackbelt

1

試試這個來獲取文本..

list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      //inflated row layout textview 
      TextView tagText = (TextView) view.findViewById(R.id.txt_text); 
      String tag = tagText.getText().toString(); 
      Toast.makeText(getApplicationContext(), 
      "Element Name " + tag + " Clicked", Toast.LENGTH_SHORT).show(); 
     } 
    });