如何在Android的viewFlipper中给textView设置点击监听器?

3

在我的新闻应用程序中,我有一个视图翻转器,显示新闻标题,您可以查看下面的ViewFlipper的XML代码。

<ViewFlipper android:id="@+id/pushFlipper"
        android:layout_width="fill_parent"
        android:layout_height="25dp"
        android:background="#90333333"
        android:flipInterval="4000"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dip"
        >

    </ViewFlipper>

动态地向这个ViewFlipper中添加TextViews,以动画形式显示新闻标题。以下是我向Flipper添加TextViews的代码。
现在,我面临的问题是如何在动态TextView上设置监听器,以便在标题被显示在TextView上时,在新的Activity中显示相应的新闻描述。请在这方面帮助我,您的帮助将不胜感激。
pushFlipper = ((ViewFlipper) this.findViewById(R.id.pushFlipper));
            pushFlipper.startFlipping();
try
            {
                RSSdata = new RSSHandler();
                for (int i = 2; i < RSSdata.getTitle().size(); i++)
                {
                    TextView tvNewsRSS = new TextView(this);
                    tvNewsRSS.setText(RSSdata.getTitle().get(i).toString());
                    tvNewsRSS.setTextColor(Color.parseColor("#FFFFFF"));
                    tvNewsRSS.setTextSize(14);
                    tvNewsRSS.setGravity(Gravity.CENTER_VERTICAL);

                    pushFlipper.addView(tvNewsRSS);

                }     
            }
            catch(Exception e)
            {
            }

这里有一个解决方案:https://dev59.com/hG865IYBdhLWcg3wcOLG 你可以轻松获取子项的索引。 - Sherif elKhatib
你能更好地解释一下你的问题吗?你想在动态文本中实现一个监听器来做什么? - Marckaraujo
文本视图显示新闻标题,通过点击文本视图,我想显示正在显示的新闻标题的新闻描述。 - user1703737
1个回答

4

其中一种解决方案是,在TextView标签上单击项时获取newsId,然后在下一个活动中使用此newsId来获取并显示适当的新闻。

代码:

try
    {

        for (int i = 0; i < 10; i++)
        {
            TextView tvNewsRSS = new TextView(this);
            tvNewsRSS.setText(RSSdata.getTitle().get(i));
            tvNewsRSS.setTextColor(Color.parseColor("#FFFFFF"));
            tvNewsRSS.setTextSize(14);
            tvNewsRSS.setTag(RSSdata.getId().get(i));
            tvNewsRSS.setGravity(Gravity.CENTER_VERTICAL);
            tvNewsRSS.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    String newsId = v.getTag().toString();

                    // Pass this newsId to next activity via intent putExtra.

                }
            });
            pushFlipper.addView(tvNewsRSS);

        }     
    }
    catch(Exception e)
    {
    }

1
亲爱的,我非常感激您的帮助,谢谢您抽出时间。 - user1703737

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接