【问题标题】:Android, setonclicklistner to dynamically generated array of textviewsAndroid,setonclicklistner 动态生成文本视图数组
【发布时间】:2013-03-18 15:32:32
【问题描述】:

我有一个动态生成的文本视图数组

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?

请帮忙。

【问题讨论】:

    标签: android textview


    【解决方案1】:

    只需拨打setOnClickListener(OnClickListener),然后拨打您的每个TextViews。

    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(listener);
        ((LinearLayout) linearLayout).addView(textViewArray[i]);
    }
    

    【讨论】:

      【解决方案2】:

      不必使用 R.id.xxx,只需使用您在循环中使用的相同数字即可:

      switch(v.getId())
      {
      case 0:
      case 1:
      //etc
      }
      

      【讨论】:

        猜你喜欢
        • 2013-03-07
        • 1970-01-01
        • 1970-01-01
        • 2014-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多