Android 在点击侦听器上获取所选项目

Android Get selected item on click listeners

戈伊斯

我将以下内容用于点击侦听器

lv.setOnItemClickListener(new AdapterView.OnItemClickListener()  {

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

            TextView textview1 = (TextView) findViewById(R.id.textView1);
            TextView textview2 = (TextView) findViewById(R.id.Sr2);
            TextView textview3 = (TextView) findViewById(R.id.Sr3);
            TextView textview4 = (TextView) findViewById(R.id.Sr4);
            TextView textview5 = (TextView) findViewById(R.id.Sr5);
            TextView textview6 = (TextView) findViewById(R.id.Sr6);
            TextView textview7 = (TextView) findViewById(R.id.Sr7);
            String text1 = textview1.getText().toString();
            String text2 = textview2.getText().toString();
            String text3 = textview3.getText().toString();
            String text4 = textview4.getText().toString();
            String text5 = textview5.getText().toString();
            String text6 = textview6.getText().toString();
            String text7 = textview7.getText().toString();
            Toast.makeText(getBaseContext(), text7, Toast.LENGTH_LONG).show();
        }});

工作正常,但提供的数据来自错误的项目

如果我点击列表视图中的第 4 个项目,它会为我提供列表视图顶部的任何项目的数据。如果我向上滚动数据更改,但再次只有项目的数据位于列表视图的顶部

我想我需要指定行但不确定如何获取它

有什么想法吗?

感谢您一如既往的帮助

马克

像这样尝试它只是示例

lv.setOnItemClickListener(new AdapterView.OnItemClickListener()  {

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

        TextView textview1 = (TextView)arg1. findViewById(R.id.textView1);
    }});
}

注:

您直接调用 findViewByID() 您需要特定行从该行获取值。例如,

TextView textview1 = (TextView)arg1. findViewById(R.id.textView1);

这里arg1是你的View

调用 onItemClickListener() 的原因是使用返回的参数之一执行操作,例如"view" 由方法返回为 arg1,这里你只需要通过写 TextView textview = (TextView)arg1.findViewById(R.id.textView); 来引用 arg1 这将解决您的问题。