获取OnItemClick Listview上的项目值

Mat*_*anb 13 android listview onitemclick

我尝试在listview上的自定义适配器中获取所选项的值.我尝试使用以下代码:

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();

                }
Run Code Online (Sandbox Code Playgroud)

一开始,如果我点击,值是好的,但是一旦我滚动并点击另一个项目,我得到了该被点击项目的错误值...任何想法是什么导致了这个?

Sam*_*Sam 49

该参数v是当前行.所以使用:

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();
}
Run Code Online (Sandbox Code Playgroud)

(或者你可以使用,getChildAt(position)但这会慢一些.)

了解您可能能够根据您的布局进一步简化此操作.