我正在运行一个 for 循环并生成应该可以点击的 TextView,因为我想开始一个意图并将 url 作为参数以及源传递。
所以,我试过这个
articleURL[i].setPaintFlags(articleURL[i].getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
articleURL[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//System.out.println(articleURL[v.getId()].getText().toString());
System.out.println(v.getId());
}
});
我遇到的问题是 v.getId() 始终为 0。当我使用注释代码时
System.out.println(articleURL[v.getId()].getText().toString());
我得到一个例外,说
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
我只需要我点击的 TextView 的内容。我究竟是如何得到它的?articleURL[i] 不起作用,因为那时他不认识 i。v.getId() 怎么总是-1?不管我点击哪一个?
这是完整的for循环
TextView articleURL = new TextView[hashMapSize];
for (int i = 0; i < hashMapSize; i++) {
articleURL[i] = new TextView(getActivity());
articleURL[i].setPaintFlags(articleURL[i].getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
articleURL[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(articleURL[v.getId()].getText().toString());
//System.out.println(v.getId());
}
});
}