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个项目,它会向我提供列表视图顶部任何项目的数据。如果我向上滚动数据更改,但只有项目的数据位于列表视图的顶部
我想我需要指定行但不知道如何获取它
有什么想法吗?
你一如既往地感谢
标记
答案 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
这将解决你的问题。