一開始我用的方法是這樣的:
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查找當前視圖中的控件,准確無疑!!!