2013-04-02 92 views
1

我有一個列表視圖如何獲得文本選定行中的ListView,如果ListView中得到項目和子項目

ListView poiList = (ListView) findViewById(R.id.poiList); 

和IM填充它與

SimpleAdapter adapter = new SimpleAdapter(this, data, 
         android.R.layout.simple_list_item_2, 
         new String[] {"name", "dist"}, 
         new int[] {android.R.id.text1, 
            android.R.id.text2}); 
     poiList.setAdapter(adapter); 

有了這個SimpleAdapter,有一個項目以及ListView中每一行的子項目。一切都很完美。

現在我實現onItemClick爲我的ListView:

poiList.setOnItemClickListener(new OnItemClickListener() { 

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

      String poiName = ((TextView)view).getText().toString(); 
} 
} 

但我不能得到我所選擇的行中的文本。我認爲該行中不止有一個TextView(Item和子項目)。我怎樣才能參考他們?

+3

你嘗試view.findViewById(...)? – Kgrover

+0

點擊時視圖自動作爲參數傳遞,並在代碼中被稱爲「視圖」。我不知道如何從中提取文本,更具體地說,我如何提取兩個字符串(項目,子項目) – Mattia

+0

我期待像 soemmenting view.getText1()/view.getText2() 或 view.getItem( )/ view.getSubitem() – Mattia

回答

5

至於我,當你張貼的問題發表意見的,你應該使用:

((TextView)(view.findViewById(android.R.id.text1))).getText().toString() 

因爲View不是TextView本身,而是列表項的View。順便說一下,很高興它解決了你的問題。乾杯。

+0

也請參閱http://stackoverflow.com/a/28479593/3496570 – Nepster

-2

爲了使它完成:

String selectedFromList = ((TextView (view.findViewById(android.R.id.text1))).getText().toString(); 
+0

此答案直接複製接受的答案,因此不會添加任何有助於此問題的更多讀者。將來如果你注意到你已經發布了與已經發布的答案相同的答案,那麼刪除你的重複答案是一種很好的禮儀。 – Joel