ListView onItemClick只获取第一项

Man*_*nah 4 android android-listview

我正在尝试获取所选项目的文本并在Toast消息中显示它.这是我写的代码:

final ListView lv = (ListView)findViewById(R.id.firstflightlist);
        lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            TextView c = (TextView) arg0.findViewById(arg1.getId());

            String text = c.getText().toString();
            Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();               
        }});
Run Code Online (Sandbox Code Playgroud)

列表视图是单选列表视图.当我单击列表中的任何项目时,它始终显示列表的第一项.可能是什么导致了这个?如何获取所选项目的文本?

Len*_*Bru 6

你不需要findViewById,你已经得到了你点击的视图.findViewById也只找到与id匹配的第一个项目,在列表视图中你有很多具有相同id的项目,所以它找到了第一个

 lv.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {


        TextView c = (TextView) arg1; //<--this one 
        String text = c.getText().toString();
        Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();               
    }});
Run Code Online (Sandbox Code Playgroud)