Mus*_*abe 2 java android onclick textview
我正在运行for循环并生成应该可单击的TextView,因为我想启动一个intent并将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());
}
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是v.getId()始终为0.当我使用注释代码时
System.out.println(articleURL[v.getId()].getText().toString());
Run Code Online (Sandbox Code Playgroud)
我得到一个例外
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
Run Code Online (Sandbox Code Playgroud)
我只需要点击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());
}
});
}
Run Code Online (Sandbox Code Playgroud)
mer*_*ica 10
实际上你在参数中得到了View.只需将其转换为TextView并调用即可getText()
public void onClick(View v) {
Log.d("text",((TextView) v).getText().toString());
}
Run Code Online (Sandbox Code Playgroud)
也不要用System.out.println.这是Android,而不是桌面Java,编码android 与普通Java 有很大的不同.你应该买一本关于Android的书并阅读它,否则你的应用程序很快就会崩溃,你将没有机会修复它们.
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |