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 に TextView を動的に追加します。これは、Flipper に TextView を追加するコードです。

今、私が直面している問題は、動的 TextViews にリスナーを設定する方法です。これにより、テキストビューに表示されたタイトルの新しいアクティビティに適切なニュースの説明を表示できます。この点で私を助けてください、あなたの助けは大歓迎です。

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)
            {
            }
4

1 に答える 1

4

解決策の 1 つは、アイテムのクリック時に 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)
    {
    }
于 2013-02-04T14:24:20.373 に答える