Android ListView中獲取選中行資料的方法

weixin_30532759發表於2012-11-16

一開始我用的方法是這樣的:

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查詢當前檢視中的控制元件,準確無疑!!!

轉載於:https://www.cnblogs.com/nikyxxx/archive/2012/11/16/2773541.html

相關文章