一開始我用的方法是這樣的:
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { View curr = parent.getChildAt((int) id); TextView c = (TextView)curr.findViewById(R.id.tvPopUpItem); String playerChanged = c.getText().toString(); Toast.makeText(Settings.this,playerChanged, Toast.LENGTH_SHORT).show(); }
但是滾動後再選擇發現獲取的值不對,正確的做法應該是這樣的
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { TextView c = (TextView) v.findViewById(R.id.tvPopUpItem); String playerChanged = c.getText().toString(); Toast.makeText(Settings.this,playerChanged, Toast.LENGTH_SHORT).show(); }
個人理解:onItemClick返回的View就是我們選中行的檢視,再根據id查詢當前檢視中的控制元件,準確無疑!!!