私はforループを実行しており、インテントを開始してソースと同様に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] は、彼が 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());
}
});
}