-4

動的に生成されたテキストビューの配列があります

for(int i = 0; i < blog_link_counter; i++) {
textViewArray[i] = new TextView(this);
textViewArray[i].setText(Html.fromHtml(array_blog_text[i]+"<br>"));
textViewArray[i].setId(i);
textViewArray[i].setOnClickListener(this);
((LinearLayout) linearLayout).addView(textViewArray[i]);
}

今、私はいくつかのテキストビューがあるアクティビティを持っています。すべてのテキストビューに onclick リスナー機能を追加する必要があります。

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/info"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FFFFFF" />

Javaファイルにonclicklistnerを追加しました。その後、onclicklistnerインターフェースを実装しました

public void onClick(View v) {
    // TODO Auto-generated method stub


switch(v.getId())
{
case R.id.    <--  ?
}

}}

どの Textview id を参照しているかをどのように一致させることができますか? ID が静的であれば、R.id.idfromxmlfile のようにできますが、この場合はどうすればよいでしょうか?

助けてください

4

2 に答える 2

2

を使用する必要はありませんR.id.xxxループで使用したのと同じ番号を使用するだけです。

switch(v.getId())
{
case 0:
case 1:
//etc
}
于 2013-03-18T16:07:00.167 に答える
0

これには View.setTag() 関数の方が適しています。IDを設定する代わりにタグを設定する

// Use .setTag
textViewArray[i].setTag(new Integer(i));

それよりも、.getTag() を呼び出してビューを取得できます。

Integer tag = (Integer) v.getTag();
switch(tag)
{
case 0:
case ...:
case blog_link_counter - 1:
}
于 2013-03-18T16:08:34.573 に答える