我正在运行一个for-loop并生成应该可点击的TextViews,因为我想先启动一个intent并将url作为参数以及源代码传递。获取动态生成的TextView文本点击它时
所以,我已经试过这
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]不起作用,因为他当时不知道我。 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());
}
});
}
谢谢,铸造它的工作。 ;) – Musterknabe