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

时间:2015-06-08 11:58:01

标签: android listview view onclicklistener

Goys

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

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个项目,它会向我提供列表视图顶部任何项目的数据。如果我向上滚动数据更改,但只有项目的数据位于列表视图的顶部

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

有什么想法吗?

你一如既往地感谢

标记

2 个答案:

答案 0 :(得分:2)

尝试这样只是样本

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

答案 1 :(得分:0)

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